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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 1.8.0 [TOC] ## 客戶端 * 增加原生異步MySQL客戶端 * 增加原生異步Redis客戶端,基于Redis官方提供的[hiredis庫](https://github.com/redis/hiredis) * 增加原生異步Http客戶端 * 增加原生異步WebSocket客戶端支持 * 重構底層swClient,異步TCP客戶端實現放到swoole內核中 * 增加`swoole_client->reuse`屬性,`SWOOLE_KEEP`長連接模式下標識是否為復用的連接 ## 服務器端 * 重構websocket服務器代碼,底層與`length_check`協議復用相同的處理函數,增強穩定性 * 增加`Task`進程對`tick/after`定時器的支持,底層基于高精度的`setitimer`+信號實現 * 保存構造函數中傳入的host、port參數到`swoole_server`對象屬性 * **增加多端口多協議的支持(重要更新)** * 增加`swoole_server->defer`函數用于延時執行一些函數 * 增加`swoole_server->close`強制切斷連接的選項,設置第二個參數會true會清空發送隊列并立即切斷連接 **多端口多協議示例:** ~~~ $serv = new swoole_server("0.0.0.0", 9501); $port2 = $serv->listen('127.0.0.1', 9502, SWOOLE_SOCK_TCP); $port2->set(array( 'open_length_check' => true, 'package_length_type' => 'N', 'package_length_offset' => 0, //第N個字節是包長度的值 'package_body_offset' => 4, //第幾個字節開始計算長度 'package_max_length' => 2000000, //協議最大長度 )); $port2->on('receive', function (swoole_server $serv, $fd, $from_id, $data) { echo "ServerPort2\n"; }); $serv->on('connect', function ($serv, $fd, $from_id){ echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Connect.\n"; }); $serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) { echo "[#".$serv->worker_id."]\tClient[$fd]: $data\n"; if ($serv->send($fd, "hello\n") == false) { echo "error\n"; } }); $serv->on('close', function ($serv, $fd, $from_id) { echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Close.\n"; }); $serv->start(); ~~~ ## 其他 * 增加swoole\_table對key值的存儲,`foreach`遍歷table時可以獲取到key值 * 更改swoole\_table的key對比模式,從crc32比對改為直接進行字符串對比 * 更新utlist.h庫到`1.9.9`版本 > swoole\_table保存Key值會增加內存占用,如table的size為100萬,KEY值存儲會增加64M內存占用 ## 問題修復 * 修復啟用消息隊列后發生double-free問題 * 重構定時器,修復`after`、`tick`定時器偶然出現的`core dump`的問題 * 定時器使用最小堆數據結構,插入/刪除時間復雜度為`log(N)` * 修復`swoole_process::signal`在PHP7下發生`core dump`的問題 * 修復`swoole_async_write`在PHP7下發生`core dump`的問題 ## 移除特性 * 移除未支持的特性相關歷史遺留代碼,如`heartbeat_ping`、`dispatch_key_type`等 * 移除`swoole_server->addtimer`、`swoole_server->deltimer`、`swoole_server->gettimer` * 移除`swoole_timer_add`、`swoole_timer_del` * 移除`swoole_server`的`onTimer`事件 * 移除`task_worker_max`配置及相關特性代碼 * 移除`swoole_server->handler`方法
                  <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>

                              哎呀哎呀视频在线观看