<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.9.0 1.9版本增加了多項新特性,修復了多個已知問題。1.9版本是100%向下兼容1.8的,用戶可無縫升級。 新增RedisServer框架 ---- Swoole-1.9增加了一個兼容`Redis`服務器端協議的Server框架,可基于此框架實現Redis服務器,支持自定義指令。 #### 示例: ```php use Swoole\Redis\Server; $server = new Server('127.0.0.1', 9501); $server->setHandler('Set', function($fd, $data) { $server->array($data[0], $data[1]); return Server::format(Server::INT, 1); }); $server->start(); ``` 客戶端增加pipe函數 --- Swoole-1.9為異步TCP客戶端增加了一個`pipe`方法,可以將客戶端收到的數據重定向到另外一個文件描述符,可以是服務器的連接fd、stream資源、sockets資源、其他Swoole\Client、Swoole\Process的管道。 #### 示例: ```php use Swoole\Client; $client = new Client(SWOOLE_TCP | SWOOLE_ASYNC); $client->on("error", function() { echo "connect failed\n"; }); $client->on("close", function() { echo "connect closed\n"; }); $client->on("connect", function($cli) { //將數據重定向到標準輸出,服務器向客戶端發送的所有數據會打印到屏幕 $cli->pipe(STDOUT); }); $client->connect("127.0.0.1", 9501); ``` 新增緩存區事件 ---- 1.9增加了2個新的事件回調`onBufferFull`和`onBufferEmpty`,以及2個新的配置項`buffer_high_watermark`和`buffer_low_watermark`。 如果寫入的數據過多緩存區尺寸超過`buffer_high_watermark`就觸發`onBufferFull`事件,當緩存區數據發送完成,水位低于`buffer_low_watermark`的值,會觸發`onBufferEmpty`事件。 緩存區事件同時可用于`Server`和`Client`。 #### 示例: ```php $client = new Swoole\Client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); //設置事件回調函數 $client->on("connect", function($cli) { $cli->send("hello world\n"); }); $client->on("receive", function($cli, $data) { echo "Received: ".$data."\n"; }); $client->on("error", function($cli) { echo "Connect failed\n"; }); $client->on("close", function($cli) { echo "Connection close\n"; }); $client->on("bufferFull", function($cli) { //暫停數據接收 $cli->pause(); }); $client->on("bufferEmpty", function($cli) { //恢復數據接收 $cli->resume(); }); //發起網絡連接 $client->connect('127.0.0.1', 9501, 0.5); ``` 新增Channel模塊 ---- swoole-1.9新增了一個新的內存數據結構[Channel](http://wiki.swoole.com/wiki/page/p-channel.html),類似于Go的chan,底層基于共享內存+Mutex互斥鎖實現,可實現用戶態的高性能內存隊列。 * Channel可用于多進程環境下,底層在讀取寫入時會自動加鎖,應用層不需要擔心數據同步問題 * 必須在父進程內創建才可以在子進程內使用 #### 示例: ```php $chan = new Swoole\Channel(2 * 1024 * 1024); //2M $chan->push(1234); $chan->push("hello world"); $chan->push(array(1234, 4567)); while($r = $chan->pop()) { var_dump($r); } ``` 新增mmap模塊 ----- swoole-1.9增加了一個新的模塊,提供了對操作系統mmap的封裝。使用[mmap](http://wiki.swoole.com/wiki/page/p-mmap.html) 可以很方便地將一個磁盤文件映射為內存,讀寫性能更高。 mmap可以減少讀寫磁盤操作的IO消耗、減少內存拷貝。在實現高性能的磁盤操作程序中,可以使用mmap來提升性能。 #### 示例: ```php $file = __DIR__.'/data'; $size = 8192; $fp = swoole\mmap::open($file, 8192); fwrite($fp, "hello world\n"); fwrite($fp, "hello swoole\n"); fflush($fp); fclose($fp); ``` 其他新增特性 ---- * 增加`swoole_clear_dns_cache`函數,可清除底層的DNS緩存 問題修復 ---- * 修復`Redis`客戶端`type`方法無法返回字符串的問題 * 修復`Http\Client`無法重用的問題 * 修復同步客戶端長度協議`package_max_length`無效的問題 * 修復低版本gcc下長期運行偶然發生崩潰的問題 * 修復異步`WebSocket`客戶端`websocket_mask`無效的問題 * 修復`MySQL`客戶端在記錄條數過多時偶然崩潰的問題 * 修復Mac平臺下task超過8K時創建臨時文件失敗的導致無法投遞任務的問題 * 修復`taskWaitMulti`在進程返回超過8K時接收超時的問題 * 修復`atmoic`的`add`和`sub`返回值存在的數據同步問題
                  <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>

                              哎呀哎呀视频在线观看