假如:客户端A,连接对象connectionA,客户端B,连接对象connectionB,这个时候connections中包含connectionA和connectionB...,假如客户端A在onClose的时候需要删除connectionA吗,如果不执行删除操作,对所有的客户端广播/推送(广播/推送不是在断开的时候执行的逻辑,其他地方用的)会有什么影响吗?我这边模拟测试了一下,不执行删除操作,connectionA过一会也会自动消失。
总的来说就是onClose的时候需要不需要使用下面这一段?
$worker->onClose = function(TcpConnection $connection)
{
global $worker;
foreach($worker->connections as $key=>$value){
if($value==$connection){
unset($worker->connections[$key]);
}
}
};
workerman会自动维护 $worker->connections 数据,业务调用close后对应的connection会自动从$worker->connections里删除,不用手动设置。
谢谢大哥,懂了。