swoole 1.7.9 發布,支持 websocket 協議

jopen 9年前發布 | 16K 次閱讀 Swoole

PHP的異步并行網絡擴展swoole 1.7.9版本已發布,此版本現已提供下載:

主要更新:

  • 增加內置Websocket服務器協議的支持

  • 增加swoole_process::signal,支持子進程異步信號處理

  • 增加swoole_server::addProcess,支持添加額外的用戶定義工作進程

  • 增加swoole_process::name,支持子進程重命名

  • 增加swoole_server->sendMessage和onPipeMessage事件

  • 增加swoole_event_write函數,用于將fwrite/socket_write等PHP自帶的socket數據發送變為異步化

  • 增加swole_server的user/group/chroot配置,可修改工作進程的用戶/組/根目錄

  • swoole_server->task/finish可以發送任意PHP的變量

  • 修復目前已知的BUG

Websocket服務器:

$ws = new swoole_http_server("0.0.0.0", 9502);

$ws->on('message', function ($frame) {
    $frame->message("server send: ".$frame->data);
});

$ws->start();

Swoole是一個PHP的C擴展,可用來開發PHP的高性能高并發TCP/UDP Server。Swoole的網絡IO部分基于epoll/kqueue事件循環,是全異步非阻塞的。 業務邏輯部分使用多進程同步阻塞方式來運行。這樣既保證了Server能夠應對高并發和大量TCP連接。又保證業務代碼仍然可以簡單的編寫。

Swoole與Node.js相比更強大,支持同步/異步、多進程并行,Swoole提供了進程生命周期管理、內存保護機制,開發者無需考慮底層細節,專注于業務邏輯和功能的開發。

Swoole的網絡事件處理是多線程的,可以充分利用多核。而Node.js是單進程單線程的。使用官方提供的EchoServer在多核環境下壓測。Swoole的處理能力比node.js高出數倍。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!