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高出数倍。