ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# onClose TCP客户端连接关闭后,在worker进程中回调此函数。函数原型: ~~~ void onClose(swoole_server $server, int $fd, int $from_id); ~~~ - $server是swoole_server对象 - $fd是连接的文件描述符 - $from_id来自那个reactor线程 ~~~ onClose回调函数如果发生了致命错误,会导致连接泄漏。通过netstat命令会看到大量CLOSE_WAIT状态的TCP连接 ~~~ > 无论由客户端发起close还是服务器端主动调用$serv->close()关闭连接,都会触发此事件。因此只要连接关闭,就一定会回调此函数 1.7.7+版本以后onClose中依然可以调用connection_info方法获取到连接信息,在onClose回调函数执行完毕后才会调用close关闭TCP连接 注意:这里回调onClose时表示客户端连接已经关闭,所以无需执行$server->close($fd)。代码中执行$serv->close($fd) 会抛出PHP错误告警。 |  Swoole流程 | |-----| ![](https://box.kancloud.cn/2015-07-20_55aca2b4be398.)