国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

通訊協(xié)議的作用

由于TCP是基于流的,客戶端發(fā)送的請(qǐng)求數(shù)據(jù)是像水流一樣流入到服務(wù)端,服務(wù)端探測(cè)到有數(shù)據(jù)到來(lái)后應(yīng)該檢查數(shù)據(jù)是否是完整的,因?yàn)榭赡苤皇且粋€(gè)請(qǐng)求的部分?jǐn)?shù)據(jù)到達(dá)服務(wù)端,甚至可能是多個(gè)請(qǐng)求連在一起到達(dá)服務(wù)端。如何判斷請(qǐng)求是否全部到達(dá)或者從多個(gè)連在一起的請(qǐng)求中分離請(qǐng)求,就需要規(guī)定一套通訊協(xié)議。

在Workerman中為什么要制定協(xié)議?

傳統(tǒng)PHP開(kāi)發(fā)都是基于Web的,基本上都是HTTP協(xié)議,HTTP協(xié)議的解析處理都由WebServer獨(dú)自承擔(dān)了,所以開(kāi)發(fā)者不會(huì)關(guān)心協(xié)議方面的事情。然而當(dāng)我們需要基于非HTTP協(xié)議開(kāi)發(fā)時(shí),開(kāi)發(fā)者就需要考慮協(xié)議的事情了。

Workerman已經(jīng)支持的協(xié)議

Workerman目前已經(jīng)支持HTTP、websocket、text協(xié)議(見(jiàn)附錄說(shuō)明)、frame協(xié)議(見(jiàn)附錄說(shuō)明),ws協(xié)議(見(jiàn)附錄說(shuō)明),需要基于這些協(xié)議通訊時(shí)可以直接使用,使用方法為:在初始化Worker時(shí)指定協(xié)議,例如

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// websocket://0.0.0.0:2345 表明用websocket協(xié)議監(jiān)聽(tīng)2345端口
$websocket_worker = new Worker('websocket://0.0.0.0:2345');

// text協(xié)議
$text_worker = new Worker('text://0.0.0.0:2346');

// frame協(xié)議
$frame_worker = new Worker('frame://0.0.0.0:2347');

// tcp Worker,直接基于socket傳輸,不使用任何應(yīng)用層協(xié)議
$tcp_worker = new Worker('tcp://0.0.0.0:2348');

// udp Worker,不使用任何應(yīng)用層協(xié)議
$udp_worker = new Worker('udp://0.0.0.0:2349');

// unix domain Worker,不使用任何應(yīng)用層協(xié)議
$unix_worker = new Worker('unix:///tmp/wm.sock');

使用自定義的通訊協(xié)議

當(dāng)Workerman自帶的通訊協(xié)議滿足不了開(kāi)發(fā)需求時(shí),開(kāi)發(fā)者可以定制自己的通訊協(xié)議,定制方法見(jiàn)下一節(jié)內(nèi)容。

提示:

Workerman內(nèi)置了一個(gè)text協(xié)議,協(xié)議格式為文本+換行符。text協(xié)議開(kāi)發(fā)調(diào)試都非常簡(jiǎn)單,可用于絕大多數(shù)自定義協(xié)議的場(chǎng)景,并且支持telnet調(diào)試。如果開(kāi)發(fā)者要開(kāi)發(fā)自己的應(yīng)用協(xié)議,可以直接使用text協(xié)議,不用再單獨(dú)開(kāi)發(fā)。

text協(xié)議說(shuō)明參考《附錄 Text協(xié)議部分》

編輯于2024-03-13 17:37:18 完善本頁(yè) +發(fā)起討論
贊助商