多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# onConnect 有新的连接进入时,在worker进程中回调。函数原型: ```php function onConnect(swoole_server $server, int $fd, int $reactorId); ``` * `$server`是`Swoole\Server`对象 * `$fd`是连接的文件描述符,发送数据/关闭连接时需要此参数 * `$reactorId`来自哪个`Reactor`线程 > 关于`$fd`和`$reactorId` [详细的解释](https://wiki.swoole.com/wiki/page/56.html) > onConnect/onClose这2个回调发生在worker进程内,而不是主进程。 > UDP协议下只有onReceive事件,没有onConnect/onClose事件 dispatch_mode = 1/3 ---- 在`1.7.15`以上版本中,当设置`dispatch_mode = 1/3`时会自动去掉`onConnect/onClose`事件回调。原因是: * 在此模式下`onConnect/onReceive/onClose`可能会被投递到不同的进程。连接相关的`PHP`对象数据,无法实现在`onConnect`回调初始化数据,`onClose`清理数据 * `onConnect/onReceive/onClose` 3种事件可能会并发执行,可能会带来异常