workerman開發者必須知道的幾個問題
以下由workerman教學專欄來介紹關於workerman開發者必須知道的幾個問題,希望對需要的朋友有幫助!
1、workerman不依賴apache或nginx
workerman本身已經是類似apache/nginx的容器,只要PHP環境OK workerman就可以運作。
2、workerman是命令列啟動的
啟動方式類似apache使用指令啟動(一般網頁空間無法使用workerman)。啟動介面類似下面
3、長連結必須加心跳
長連線必須加心跳,長連結必須加心跳,長連結必須加心跳,重要的話說三次。
長連線長時間不通訊肯定會被防火牆幹掉而斷開。不加心跳的長連結應用就等著老闆KO你吧。
4、客戶端和服務端協定一定要對應才能通訊
這個是開發者非常常見的問題。例如客戶端是用websocket協議,服務端必須也是websocket協定(服務端new Worker('websocket://0.0.0.0...'))才能連得上,才能通訊。
不要嘗試在瀏覽器網址列訪問websocket協議端口,不要嘗試用webscoket協議訪問裸tcp協議端口,協議一定要對應。
這裡的原理類似如果你要和英國人交流,那麼要使用英語。如果要和日本人交流,那麼要使用日文。這裡的語言就類似與通許協議,雙方(客戶端和服務端)必須使用相同的語言才能交流,否則無法通訊。
5、連線失敗可能的原因
剛開始使用workerman時很常見的一個問題是客戶端連線服務端失敗。原因一般如下:
1、伺服器防火牆(包括雲端伺服器安全群組)阻止了連線(50%幾率是這個)
2、客戶端和服務端所使用的協定不一致(30 %幾率)
3、ip或連接埠寫錯了(15%的幾率)
4、服務端沒啟動
6、不要使用exit die sleep語句
業務執行exit die語句會導致進程退出,並顯示WORKER EXIT UNEXPECTED錯誤。當然,進程退出了會立刻重啟一個新的進程繼續服務。如果需要返回,可以呼叫return。 sleep語句會讓進程睡眠,睡眠過程中不會執行任何業務,框架也會停止運行,會導致該進程的所有用戶端請求都無法處理。
7、業務程式碼裡不要有死循環
業務程式碼裡不要有死循環,否則會導致控制權無法交還給workerman框架,導致無法接收處理其它客戶端訊息。
8、改程式碼要重啟
workerman是常駐記憶體的框架,改程式碼要重啟workerman才能看到新程式碼的效果。
9、長連線應用建議用GatewayWorker框架
很多開發者使用workerman是要開發長連線應用,例如即時通訊、物聯網等,長連線應用建議直接使用GatewayWorker框架,它專門在workerman的基礎上再次封裝,做起長連接應用後台更簡單、更易用。
10、支援更高並發
如果業務並發連接數超過1000同時在線,請務必優化linux內核,並安裝event擴充功能或libevent擴充功能。
更多workerman使用教學請關注workerman教學專欄。
以上是workerman開發者必須知道的幾個問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

實現Workerman文件中的文件上傳與下載,需要具體程式碼範例引言:Workerman是一款高效能的PHP非同步網路通訊框架,具備簡潔、高效、易用等特點。在實際開發中,文件上傳和下載是常見的功能需求,本文將介紹如何使用Workerman框架實現文件的上傳和下載,並給出具體的程式碼範例。一、檔案上傳:檔案上傳是指將本機上的檔案傳輸至伺服器端的操作。下面是使用

如何實現Workerman文件的基本使用方法簡介:Workerman是一個高效能的PHP開發框架,它可以幫助開發者輕鬆建立高並發的網路應用程式。本文將介紹Workerman的基本使用方法,包括安裝和設定、建立服務和監聽連接埠、處理客戶端請求等。並給出相應的程式碼範例。一、安裝並設定Workerman在命令列中輸入以下命令來安裝Workerman:c

Swoole 和 Workerman 都是高效能 PHP 伺服器框架。 Swoole 以其非同步處理、出色的效能和可擴展性而聞名,適用於需要處理大量並發請求和高吞吐量的專案。 Workerman 提供了非同步和同步模式的靈活性,具有直覺的 API,更適合易用性和處理較低並發量的專案。

如何實現Workerman文件中的定時器功能Workerman是一款強大的PHP非同步網路通訊框架,它提供了豐富的功能,其中就包括定時器功能。使用定時器可以在指定的時間間隔內執行程式碼,非常適合定時任務、輪詢等應用程式場景。接下來,我將詳細介紹如何在Workerman中實現定時器功能,並提供具體的程式碼範例。第一步:安裝Workerman首先,我們需要安裝Worker

Workerman開發:基於UDP協議的即時視訊通話摘要:本文將介紹如何使用Workerman框架實現基於UDP協議的即時視訊通話功能。我們將深入了解UDP協議的特點,並透過程式碼範例展示如何建立一個簡單但完整的即時視訊通話應用程式。引言:在網路通訊中,即時視訊通話是一項非常重要的功能。傳統的TCP協定在實現即時性較高的視訊通話時,可能會有傳輸延遲等問題。而UDP

如何實現Workerman文件中的反向代理功能,需要具體程式碼範例簡介:Workerman是一款高效能的PHP多進程網路通訊框架,提供了豐富的功能和強大的效能,廣泛應用於Web即時通訊、長連接服務等場景。其中,Workerman也支援反向代理功能,可實現伺服器對外提供服務時的負載平衡和靜態資源快取等功能。本篇文章將介紹如何使用Workerman實現反向代理功

如何使用Workerman建立高可用性負載平衡系統,需要具體程式碼範例在現代技術領域中,隨著網路的快速發展,越來越多的網站和應用程式需要處理大量的並發請求。為了實現高可用性和高效能,負載平衡系統成為了必不可少的組件之一。本文將介紹如何使用PHP開源框架Workerman建構一個高可用性的負載平衡系統,並提供具體的程式碼範例。一、Workerman簡介Worke

如何實現Workerman文件中的TCP/UDP通信,需要具體程式碼範例Workerman是一款高效能的PHP非同步事件驅動框架,廣泛用於實現TCP和UDP通訊。本文將介紹如何使用Workerman實現基於TCP和UDP的通信,並提供相應的程式碼範例。一、TCP通訊創建TCP伺服器使用Workerman建立TCP伺服器十分簡單,只需寫如下程式碼:<?ph
