多进程下,是否可以把每个进程客户连接的connection保存到主进程变量

bgyh2003

如下代码是否可行

$worker = new Worker('websocket://0.0.0.0:2000'); 
$worker->count = 2; 
$AllConnections = array();//记录所有连接,键名为uid

$worker->onConnect = function($connection)

            global $worker,$AllConnections;
            $AllConnections = $connection;//所有连接都保存到这个变量里,用这个变量实现群推送
        };
2276 1 0
1个回答

latin

记得群主说过,进程间变量是不共享的,所以我觉得多进程不行的,单进程应该是可以的。

还要注意在onClose的时候把对应的$connection从$AllConnections删除,不然$AllConnections数组会越来越大,这样会无限占用内存。

  • bgyh2003 2018-01-25

    谢谢回答,本人菜鸟,不太懂php的多进程 -_-!

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