workerman在onClose的时候需要删除连接对象吗?

jiangwz

问题描述

假如:客户端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]);
        }
    }
};
937 1 0
1个回答

walkor 打赏

workerman会自动维护 $worker->connections 数据,业务调用close后对应的connection会自动从$worker->connections里删除,不用手动设置。

年代过于久远,无法发表回答
×
🔝