1.8.8

  • 增加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\PortRequestOpenHandShakeMessage回调函数设置支持
  • 增加Swoole\Client->getPeerCert方法
  • 增加Swoole\Client->pauseSwoole\Client->resume
  • 增加Swoole\Http\Client更多的客户端设置选项
  • 修复Swoole\Http\Request->files在PHP7下为NULL时被外部引用发生崩溃的问题

并发Task特性

之前的版本taskwait只支持同时执行一个任务,在一些场景下需要同时并发执行多个Task,并返回结果集。最新的1.8.8版本增加了并发Task的支持,可以解决此类问题。

  1. $tasks[] = mt_rand(1000, 9999);
  2. $tasks[] = mt_rand(1000, 9999);
  3. //等待所有Task结果返回,超时为10s
  4. var_dump($tasks);
  5. $results = $serv->taskWaitMulti($tasks, 10.0);
  6. var_dump($results);