它的邏輯很簡單,當客戶端Socket透過網路傳送一個 hello 字串時,伺服器會回覆一個 Server: hello 字串。 Server是非同步伺服器,所以是透過監聽事件的方式來寫程式的。當對應的事件發生時底層會主動回呼指定的函數。如有新的TCP連線進入時會執行onConnect事件回調,當某個連線向伺服器傳送資料時會回呼onReceive函數。
UDP伺服器與TCP伺服器不同,UDP沒有連線的概念。啟動Server後,客戶端無需Connect,直接可以向Server監聽的9502連接埠傳送封包。對應的事件為onPacket。 $clientInfo是客戶端的相關訊息,是一個數組,有客戶端的IP和連接埠等內容調用 $server->sendto 方法向客戶端發送資料
#Http伺服器只需要關注請求回應即可,所以只需要監聽一個onRequest事件。當有新的Http請求進入就會觸發此事件。事件回調函數有2個參數,一個是$request對象,包含了請求的相關訊息,如GET/POST請求的資料。 另外一個是response對象,對request的回應可以透過操作response物件來完成。 $response->end()方法表示輸出一段HTML內容,並結束此請求。
0.0.0.0 表示監聽所有IP位址,一台伺服器可能同時有多個IP,如127.0.0.1本地回環IP、192.168.1.100區域網路IP、210.127.20.2 外網路IP,這裡也可以單獨指定監聽一個IP9501 監聽的端口,如果被佔用程式會拋出致命錯誤,中斷執行。
WebSocket伺服器是建立在Http伺服器之上的長連線伺服器,客戶端首先會發送一個Http的請求與伺服器進行握手。握手成功後會觸發onOpen事件,表示連接已就緒,onOpen函數中可以得到$request對象,包含了Http握手的相關信息,如GET參數、Cookie、Http頭信息等。
建立連線後客戶端與伺服器端就可以雙向通訊了。
客戶端傳送訊息到伺服器端時,伺服器端觸發onMessage事件回呼伺服器端可以呼叫$server->push()向某個客戶端(使用$fd識別碼)傳送訊息伺服器端可以設定onHandShake事件回呼來手動處理WebSocket握手。
swoole_http_server是swoole_server的子類,內建了Http的支援swoole_websocket_server是swoole_http_server的子類, 內建了WebSocket的支援
以上是swoole各種伺服器區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文概述了為Swoole項目做出貢獻的方法,包括報告錯誤,提交功能,編碼和改進文檔。它討論了初學者開始貢獻的必要技能和步驟,以及如何找到緊迫的是

本文討論了在PHP中使用Swoole的異步I/O功能用於高性能應用程序。它涵蓋安裝,服務器設置和優化策略。單詞計數:159

Swoole的反應堆模型使用事件驅動的,非阻滯I/O架構來有效地管理高持續性場景,通過各種技術優化性能。(159個字符)(159個字符)

摘要:本文討論了通過識別,隔離和固定解決SWOORE應用程序中的內存洩漏,並強調了常見原因,例如不當資源管理和不受管理的Coroutines。 Swoole Tracker和Valgrind等工具


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能