在WorkerMan為什麼要製定協議?

(*-*)浩
發布: 2020-01-02 17:49:54
原創
1806 人瀏覽過

在WorkerMan為什麼要製定協議?

由於TCP是基於流的,客戶端發送的請求資料是像水流一樣流入到服務端,服務端探測到有資料到來後應該檢查資料是否是完整的,因為可能只是一個請求的部分資料到達服務端,甚至可能是多個請求連在一起到達服務端。

如何判斷請求是否全部到達或從多個連在一起的請求中分離請求,就需要規定一套通訊協定。

在WorkerMan為什麼要製定協議?

傳統PHP開發都是基於Web的,基本上都是HTTP協議,HTTP協議的解析處理都由WebServer獨自承擔了,所以開發者不會關心協議方面的事情。 (建議學習:workerman教學

#然而當我們需要基於非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為什麼要製定協議?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!