1.8.8
最后更新于:2022-04-02 06:44:12
# 1.8.8
[TOC]
* 增加`Swoole\Server\Port->getSocket`方法,可获取监听端口的socket句柄
* 增加`Swoole\Server->getClientInfo()['close_errno']`属性,可获取连接关闭的错误码
* 修复`Swoole\Server->close`无法关闭未完成握手的SSL客户端连接的问题
* 修复`Swoole\Server->taskwait`在BASE模式下无法使用的问题
* 增加`Swoole\Event`命名空间与类风格的API
* 修复`Swoole\MySQL`客户端无法支持超过250字段查询语句的问题
* 增加`Swoole\MySQL`字符集设置支持
* 修复`Swoole\Server->task`第三参数传入Callback在PHP7下发生崩溃的问题
* 修复`Swoole\Http\Server`由于外部引用request对象后用户取消请求导致崩溃的问题
* 增加`Swoole\Server->taskWaitMulti`可以并发执行多个任务
* 修复`Swoole\Http\Client`的WebSocket客户端接收数据粘包的问题
* 增加`Swoole\Server\Port`对`Request`、`Open`、`HandShake`、`Message`回调函数设置支持
* 增加`Swoole\Client->getPeerCert`方法
* 增加`Swoole\Client->pause`和`Swoole\Client->resume`
* 增加`Swoole\Http\Client`更多的客户端设置选项
* 修复`Swoole\Http\Request->files`在PHP7下为NULL时被外部引用发生崩溃的问题
## 并发Task特性
之前的版本`taskwait`只支持同时执行一个任务,在一些场景下需要同时并发执行多个Task,并返回结果集。最新的`1.8.8`版本增加了并发Task的支持,可以解决此类问题。
~~~
$tasks[] = mt_rand(1000, 9999);
$tasks[] = mt_rand(1000, 9999);
//等待所有Task结果返回,超时为10s
var_dump($tasks);
$results = $serv->taskWaitMulti($tasks, 10.0);
var_dump($results);
~~~
';