当前连接属于哪一个进程?

xiewen_kevin

Hi walkor, 我现在服务器框架只是用的Workerman,如果要用Channel作分布式通讯的话,必须要知道连接所在的worker, 那么当设备连接上来的时候,我要如何获取到当连接所在的进程(worker id)? 例如在$tcp_worker->onConnect = function ($connection) {}这个函数里面.

2810 2 0
2个回答

walkor 打赏

是的,可以在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();
  • 暂无评论
xiewen_kevin

好的 谢谢walkor

  • 暂无评论
年代过于久远,无法发表回答
×
🔝