Swoole-1.8.8 版本增加了并发任务的支持,另外修复了近期发现的一些BUG。
主要更新:
增加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时被外部引用发生崩溃的问题
并发任务特性:
之前的版本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);