如何在start_gateway.php中获取当前gateway机器的连接总数

aux

我在start_gateway.php中$gateway->onWorkerStart和$gateway->onConnect这两个绑定里面尝试各种方式获取当前gateway机器的连接总数,都失败了
1:在onWorkerStart阶段我起定时器,每两秒钟获取一次connections的总数,但是定时器的运行环境和主线是隔离的,算是尝试失败了
2:在onConnect阶段去获取,这个更加不行,onConnect阶段函数默认传递$connection对象,这对象更加没有当前gateway的连接总数
3:尝试自己写一个GatewayBase类继承Gateway类,重写Gateway类的onClientConnect将当前连接总数传递到onConnect绑定的函数里面去,报错exit with status 64000
4:3:尝试自己写一个GatewayBase类继承Gateway类,重写Worker类的acceptConnection将当前连接总数传递到onConnect绑定的函数里面去,报错exit with status 64000
5:在onWorkerStart定时器里面直接count( $GLOBALS->connections )获取连接总数也不对
 
我这边agent代理负载均衡服务器都写好了,结果获取各Gateway机器连接总数的时候出这岔子
现在已经陷入绝望的地步了,求助

2913 1 0
1个回答

blogdaren

1、$gateway->onWorkerStart 里无法获取
2、可以在 $gateway->onConnect 回调中获取当前进程维持的连接总数:
count($connection->worker->connections)
3、所有gateway进程的总连接数需要自己再做进一步的汇总工作

  • aux 2019-04-03

    看样子只能这样了。。。真是蛋疼,撸源码倒是找到了可以统计总数的地方,这应该是很基础的功能了,不明白为何不维护一套API出来

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