您好,登錄后才能下訂單哦!
小編給大家分享一下在WorkerMan中為什么要制定協議,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
由于TCP是基于流的,客戶端發送的請求數據是像水流一樣流入到服務端,服務端探測到有數據到來后應該檢查數據是否是完整的,因為可能只是一個請求的部分數據到達服務端,甚至可能是多個請求連在一起到達服務端。
如何判斷請求是否全部到達或者從多個連在一起的請求中分離請求,就需要規定一套通訊協議。
在WorkerMan中為什么要制定協議?
傳統PHP開發都是基于Web的,基本上都是HTTP協議,HTTP協議的解析處理都由WebServer獨自承擔了,所以開發者不會關心協議方面的事情。
然而當我們需要基于非HTTP協議開發時,開發者就需要考慮協議的事情了。
WorkerMan已經支持的協議
WorkerMan目前已經支持HTTP、websocket、text協議(見附錄說明)、frame協議(見附錄說明),ws協議(見附錄說明),需要基于這些協議通訊時可以直接使用,使用方法及時在初始化Worker時指定協議,例如
use Workerman\Worker; // websocket://0.0.0.0:2345 表明用websocket協議監聽2345端口 $websocket_worker = new Worker('websocket://0.0.0.0:2345'); // text協議 $text_worker = new Worker('text://0.0.0.0:2346'); // frame協議 $frame_worker = new Worker('frame://0.0.0.0:2347'); // tcp Worker,直接基于socket傳輸,不使用任何應用層協議 $tcp_worker = new Worker('tcp://0.0.0.0:2348'); // udp Worker,不使用任何應用層協議 $udp_worker = new Worker('udp://0.0.0.0:2349'); // unix domain Worker,不使用任何應用層協議 $unix_worker = new Worker('unix:///tmp/wm.sock');
看完了這篇文章,相信你對“在WorkerMan中為什么要制定協議”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。