Hi walkor, 我现在服务器框架只是用的Workerman,如果要用Channel作分布式通讯的话,必须要知道连接所在的worker, 那么当设备连接上来的时候,我要如何获取到当连接所在的进程(worker id)? 例如在$tcp_worker->onConnect = function ($connection) {}这个函数里面.
是的,可以在onConnect的时候获取$worker->id,就知道是在哪一个进程了。 如果是分布式部署,还需要知道是哪个服务器,可以用$worker->name来区分,或者给$worker设置个临时变量存储当前服务器标识比如localIp
$worker = new Worker('....'); $worker->localIp = 'xx.xx.xx.xx'; $worker->onConnect = function($connection) use ($worker) { echo $worker->localIp, $worker->id, $connection->id; }; Worker::runAll();
好的 谢谢walkor
是的,可以在onConnect的时候获取$worker->id,就知道是在哪一个进程了。
如果是分布式部署,还需要知道是哪个服务器,可以用$worker->name来区分,或者给$worker设置个临时变量存储当前服务器标识比如localIp
好的 谢谢walkor