swoole 1.7.9 發布,支持 websocket 協議
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高出數倍。