v1.6

最后更新于:2022-04-02 06:45:18

# v1.6 [TOC] ## v1.6.13 1. 修复异常连接导致服务器死循环的BUG 2. 修复swReactorEpoll\_del抛出WARN的BUG ## v1.6.11 1. task\_worker启动时也会调用onWorkerStart,可以用worker\_id参数来区分task\_worker还是普通的worker 2. 增加onWorkerError回调,用来捕获worker进程异常退出 3. 使用 $server->setting属性可以得到运行时配置数组 4. swoole\_server::task和taskwait可以指定发送给哪个task\_worker进程 5. 添加对字节流协议的分包支持,参见 examples/length\_check\_server.php & length\_check\_client.php 6. 增加 package\_eof 参数,等同于 data\_eof ## v1.6.10 * 简化异步客户端,当onReceive时不再需要调用$cli->recv,直接拿到数据。当onClose发生时也不需要再次调用$cli->close * connect支持填写域名,swoole会自动进行DNS查询 * 当connect失败时,如果直接仍然调用send/recv,会抛出错误 * connection信息中增加connect\_time和last\_time,记录连接的时间和最后一次发送数据的时间 * 增加TCP长连接心跳机制支持 * 重构data\_buffer功能 ## v1.6.9 * 增加到pecl.php.net,可通过pecl install swoole来安装 * 修复task模块的bug * 增加基于unixsock的争抢模式实现 ## v1.6.8 * 解决某些系统下worker进程段错误问题 * 增加swoole\_server\_taskwait函数 * 解决UDP多进程在FDMOD模式下的错误问题 ## v1.6.7 * 线程的数量加入限制最大不超过CPU数的4倍 * 进程数量超过CPU数的100倍后会抛一一条警告信息 * 修复onStart不能addtimer的bug * 修复php5.5下异步mysql编译失败问题 * poll\_thread\_num改为reactor\_num ## v1.6.6 * 对FreeBSD/MacOS下的kqueue做了优化 * 默认使用epoll/kqueue作为事件轮询 * swoole\_client内存泄露问题解决 * 对主动发起close做优化,无需主进程再次发送通知 * task\_worker使用UnixSock-UDP通信方式 * 对Epoll的RST事件优化 ## v1.6.5 * 启动100个worker进程时可能crash的问题解决 * 支持MacOS * 定时器重构,支持1ms粒度,并可用于Worker进程 ## v1.6.4 * 内存池修改为自动扩容 * AsyncTask接口 * 低版本系统bug解决 * 提供swoole\_lock锁 ## v1.6.3 * SWOOLE\_MODE\_BASE模式重构,由于PHP在多线程下容易发生内存错误,BASE模式修改为单进程单线程模式 * swoole\_client->on/swoole\_event\_add可以用于任何环境 * swoole\_server增加面向对象风格 * swoole\_connection\_info可用于UDP协议 * 解决php,gcc低版本可能出现的段错误问题 * 解决swoole扩展导致fpm段错误的问题 ## v1.6.2 * 增加swoole\_event\_add函数,可以将任意一个socket添加到swoole的主事件循环内 * 增加swoole\_event\_del函数,删除添加的socket * 增加examples/proxy.php实例代码,全异步非阻塞的代理服务器 * 增加examples/async\_mysql.php,实现异步非阻塞的MySQL调用 > 1.6.2新增的reactor操作接口,使得redis、mysql、mongodb等网络接口整合swoole\_server中,实现全异步化高性能服务器 ## v1.6.1 * 增加configure可选参数--enable-msgqueue,启用此参数后将使用消息队列作为IPC方式 * 解决reload后,worker分配错误的bug * 抢占式分配bug解决 * 解决刷warn的问题 ## v1.6.0 * 优化UDP实现方式,实现高并发高可靠的UDP Server * 可以切换IPC模式,队列或者Unsock * close事件处理优化,解决丢失close的bug * 使用全局内存池来分配内存
';