<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # swoole\_client->close [TOC] 關閉連接,函數原型為: ~~~ bool $swoole_client->close(bool $force = false); ~~~ 操作成功返回**true**。當一個swoole\_client連接被close后不要再次發起connect。正確的做法是銷毀當前的swoole\_client,重新創建一個swoole\_client并發起新的連接。 * 第一個參數設置為`true`表示強制關閉連接,可用于關閉`SWOOLE_KEEP`長連接 > swoole\_client對象在析構時會自動close ## 異步客戶端 客戶端`close`會立即關閉連接,如果發送隊列中仍然有待數據,底層會丟棄。請勿在大量發送數據后,立即`close`,否則發送的數據未必能真正到達服務器端。 #### 錯誤實例 ~~~ $client = new swoole_client(SWOOLE_TCP | SWOOLE_ASYNC); $client->on("connect", function(swoole_client $cli) { }); $client->on("receive", function(swoole_client $cli, $data){ $cli->send(str_repeat('A', 1024*1024*4)."\n"); $cli->close(); }); $client->on("error", function(swoole_client $cli){ echo "error\n"; }); $client->on("close", function(swoole_client $cli){ echo "Connection close\n"; }); $client->connect('127.0.0.1', 9501); ~~~ 客戶端發送了`4M`數據,實際傳輸可能需要一段時間。這是立即進行了`close`操作,可能只有小部分數據傳輸成功。大部分數據在發送隊列中排隊等待發送,`close`時會丟棄這些數據。 #### 解決方案 * 配合使用`onBufferEmpty`,等待發送隊列為空時進行`close`操作 * 協議設計為`onReceive`收到數據后主動關閉連接,發送數據時對端主動關閉連接 ~~~ $client = new swoole_client(SWOOLE_TCP | SWOOLE_ASYNC); $client->on("connect", function(swoole_client $cli) { }); $client->on("receive", function(swoole_client $cli, $data){ $cli->send(str_repeat('A', 1024*1024*4)."\n"); }); $client->on("error", function(swoole_client $cli){ echo "error\n"; }); $client->on("close", function(swoole_client $cli){ echo "Connection close\n"; }); $client->on("bufferEmpty", function(swoole_client $cli){ $cli->close(); }); $client->connect('127.0.0.1', 9501); ~~~
                  <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>

                              哎呀哎呀视频在线观看