swoole 1.7.9 发布,支持 websocket 协议

jopen 9年前

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