PHP的异步并行网络扩展 swoole1.7.16 版本已发布,此版本为BUG修复版本,建议所有用户升级。下载地址: http://pecl.php.net/package/swoole https://github.com/swoole/swoole-src/releases/tag/swoole-1.7.16-stable 主要更新 增加swoole_server->tick和swoole_timer_tick函数 增加http服务器对gzip压缩的支持 增加swoole_table->incr/decr原子自增/自减方法 增加open_eof_split配置,使用EOF检测可以支持自动分包 增加server统计项request_count和worker_request_count 增加server的连接迭代器,可以使用foreach遍历服务器的所有连接 增加http服务器请求的query_string 增加http服务器multipart-form和上传文件的支持 修复onReceive数据合并失效的BUG 修复swoole_server->addtimer与tick定时器冲突的BUG 修复低版本Linux下Accept未设置阻塞的问题 修复Accept失败返回Too Many Connection重复打印日志的问题 修复task_max_request参数失效的问题 修复swoole_client的waitall参数失效问题 修复swoole_table发生死循环的BUG WebSocket服务器onOpen回调函数第2个参数由$fd调整为$request对象 Http服务器允许发送空body的response 禁用swoole_websocket_server->send方法 BASE模式支持向任意FD发送数据 设置dispatch_mode = 1, 3 后关闭onClose/onConnect事件回调 允许Worker进程内设置非系统保留信号 移除swoole底层对对象资源属性的依赖,直接读取指针,提升性能 解决心跳线程无法强制杀掉遗留连接的问题 优化dispatch_mode=3模式,提升任务分配的效率 Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。 Swoole与Node.js相比更强大,支持同步/异步、多进程并行,Swoole提供了进程生命周期管理、内存保护机制,开发者无需考虑底层细节,专注于业务逻辑和功能的开发。 Swoole的网络事件处理是多线程的,可以充分利用多核。而Node.js是单进程单线程的。使用官方提供的EchoServer在多核环境下压测。Swoole的处理能力比node.js高出数倍。 swoole-1.7.16 版本已发布,BUG 修复版本下载地址