swoole 1.7.13 发布,增加对 ARM 平台的支持

jopen 10年前

PHP的异步并行网络扩展 swoole 1.7.13 版本已发布,此版本现已提供下载:

主要更新:

  • 增加对ARM平台的支持,可在树莓派等ARM系统上使用swoole,开发网络通信程序

  • 已全面测试通过TCP/UDP服务器端/客户端对IPv6的支持

  • swoole_table已测试通过,可用于实际项目

  • 增加swoole_server->sendto接口,可向任意IP:PORT发送UDP包

  • 增加swoole_client->getpeername

  • 增加swoole_client->getsockname

  • 增加swoole_client->sendto

  • 增加swoole_process::wait的非阻塞设置

  • 修复MacOS/FreeBSD在大量并发时出现ENOBUFF错误

  • 增加Http服务器分片(chunk)发送的支持

  • 增加pcre检测,编译无需依赖pcre

  • 修复websocket服务器握手时Sec-WebSocket-Accept串偶发错误的问题

  • 修复Http服务器在开启KeepAlive时连续POST数据发生coredump的问题

  • 修复task临时文件磁盘空间未释放的BUG

  • connection_info中的from_fd, from_port 修改为 server_fd, server_port

  • connection_info增加socket_type项表示客户端的类型

  • 优化内置Http服务器性能

  • 优化内置WebSocket服务器性能

Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。

Swoole与Node.js相比更强大,支持同步/异步、多进程并行,Swoole提供了进程生命周期管理、内存保护机制,开发者无需考虑底层细节,专注于业务逻辑和功能的开发。

Swoole的网络事件处理是多线程的,可以充分利用多核。而Node.js是单进程单线程的。使用官方提供的EchoServer在多核环境下压测。Swoole的处理能力比node.js高出数倍。