- 新增
Co::getContext
获取协程上下文对象 (RFC-1018) (@twose) - 新增
Co::getPcid
获取父协程ID (RFC-1017) (@twose) - 新增
Co::exists
判断协程是否存在 (@twose) - 协程Hook支持
stream_select
(#2358) (matyhtf) - BASE模式下增加
max_wait_time
配置支持 (#2282) (@shiguangqi) - 支持在Master/Manager/User进程中单向投递任务 (RFC-1015) (@matyhtf)
Co\Socket
模块新增recvAll
和sendAll
两个API, 用于确保完整收/发数据, 直到完成或产生错误 (3700cbb
)(@twose)- Process支持协程模式, 具体请参考 (Process中使用协程)
- 新增
Server->getCallback
方法获取Server指定名称的回调函数 (@matyhtf)
-
现在默认的最大连接数是100K (而不是10K), 如果系统配置小于此数量时取系统配置 (
3d2e387
) (@twose) -
Co::stats
将展示更多信息如事件数量, 监听信号数量, aio任务数量等 (@matyhtf) -
Co::getBackTrace
在不传参时等同于获取当前调用栈即debug_backtrace
, 便于代码统一书写 (@twose) -
Co::listCoroutines
重命名为Co::list
, 但仍保留原名作为别名(向下兼容) (@twose) -
Table::exist
,Server::exist
皆重命名为exists
, 但仍保留原名作为别名(向下兼容) (@twose) -
Redis自动重连时将会自动鉴权和选择对应的数据库, 新增API:
getOptions
,getAuth
,getDBNum
(#2303) (fdac8a3
) (@windrunner414 & @twose) -
Server->stats
返回值新增worker_dispatch_count
来得到master向当前进程投递请求数量, 可通过worker_dispatch_count - worker_request_count
来获得排队中的请求数量 (a353808
) (@matyhtf) -
移除Nghttp2依赖, 可无需安装, 直接编译选项开启
- 修复task方法传递null参数时出错的问题 (#2366) (@twose)
- 修复Http客户端发送大数据时发送不完整的问题 (#2360) (@twose)
- 修复TCP客户端使用eof协议时, 缓冲区中未处理的数据丢失的问题 (
a59ae39
) (@twose) - 修复Server Reload的异步安全性 (
022f859
) (@matyhtf) - 修复连接迭代器的索引值 (
b066146
) (@twose) - 修复Set-Cookie时, 特殊字符过长被截断 (#2368) (@mabu233 & @twose)
- 修复Http客户端没有解码cookie的问题(发送时重复编码) (
069ca5d
) (@twose) - 修复Http客户端下载时使用超时功能导致coredump (#2377) (@matyhtf & @twose)
- 修复
__call
+call_user_func*
调用MySQL客户端方法时产生的coredump (#2387) (@matyhtf) - 修复Http2客户端header名传入数字时产生的coredump (#2375) (@mabu233)
- 修复
Swoole\Event::Dispatch
行为不符合预期 (#2390) (@matyhtf) - 修复PHP7.0.x极低版本下编译失败 (
768b8a7
) (@shiguangqi) - 修复Socks5代理握手失败 (
94ef96c
) (@twose) - 修复低版本LINUX内核下连接失败导致的内存读错误 (
5adf625
) (@matyhtf & @twose) - 修复Server在BASE单进程模式下在master进程使用定时器无效的问题 (
82eca13
) (@twose) - 修复由于低版本ZendAPI不稳定可能导致的编译不通过的问题 (
768b8a7
) (@shiguangqi) - 修复调用sendto时返回EINVAL (#2395) (@junwei)
- 禁止在使用异步文件IO后创建Server或创建自定义进程
- 禁止在协程内创建Server或创建自定义进程
Websocket\Server->exists
只判断连接是否存在, 请使用isEstablished
方法判断是否为Websocket客户端- 移除
swoole.fast_serialize
配置项 - 移除了协程客户端方法调用失败时产生的Warning, 统一使用返回值和错误码判断
- 移除
Server->gzip
方法 - 移除
PicoHttpParser
支持
移除所有异步模块, 分离异步扩展到 async-ext 移除的异步模块如下:
- Async系列函数
- MySQL
- Redis
- Http\Client
- Memory\Pool
- MsgQueue
- RingQueue
- 测试支持在任意装有docker的主机上运行并自动部署基于docker的swoole/mysql/redis容器, 详情参阅源码目录下travis文件夹内的README文档