<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 通訊協議作用 由于TCP是基于流的,客戶端發送的請求數據是像水流一樣流入到服務端,服務端探測到有數據到來后應該檢查數據是否是完整的,因為可能只是一個請求的部分數據到達服務端,甚至可能是多個請求連在一起到達服務端。如何判斷請求是否全部到達或者從多個連在一起的請求中分離請求,就需要規定一套通訊協議。 ## 在WorkerMan中為什么要制定協議? 傳統PHP開發都是基于Web的,基本上都是HTTP協議,HTTP協議的解析處理都由WebServer獨自承擔了,所以開發者不會關心協議方面的事情。然而當我們需要基于非HTTP協議開發時,開發者就需要考慮協議的事情了。 ## WorkerMan已經支持的協議 WorkerMan目前已經支持HTTP、websocket、text協議(見附錄說明)、frame協議(見附錄說明),ws協議(見附錄說明),需要基于這些協議通訊時可以直接使用,使用方法及時在初始化Worker時指定協議,例如 ```php 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自帶的通訊協議滿足不了開發需求時,開發者可以定制自己的通訊協議,定制方法見下一節內容。 **提示:** Workerman內置了一個text協議,協議格式為文本+換行符。text協議開發調試都非常簡單,可用于絕大多數自定義協議的場景,并且支持telnet調試。如果開發者要開發自己的應用協議,可以直接使用text協議,不用再單獨開發。 text協議說明參考《附錄 Text協議部分》
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看