搜尋
首頁php框架Workermanworkerman開發者必須知道的幾個問題

workerman開發者必須知道的幾個問題

Nov 26, 2019 pm 03:44 PM
workerman

以下由workerman教學專欄來介紹關於workerman開發者必須知道的幾個問題,希望對需要的朋友有幫助!

workerman開發者必須知道的幾個問題

1、workerman不依賴apache或nginx

workerman本身已經是類似apache/nginx的容器,只要PHP環境OK workerman就可以運作。

2、workerman是命令列啟動的

啟動方式類似apache使用指令啟動(一般網頁空間無法使用workerman)。啟動介面類似下面

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中文網其他相關文章!

陳述
本文轉載於:workerman。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境