GatewayClient
GatewayClient copied to clipboard
使用client循环到注册中心去取数据有时候会报错
执行代码
Gateway::$registerAddress = "{$host}:{$port}";
echo "register=", Gateway::$registerAddress, PHP_EOL;
while(true) {
var_dump([
'Gateway::getAllUidCount()' => Gateway::getAllUidCount(),
'getClientIdByUid' => Gateway::getClientIdByUid('123'),
]);
sleep(1);
}
执行的日志
[centos@ip-172-20-4-112 GatewayWorker]$ php -f ./bin/demo.php
register=127.0.0.1:1239
array(2) {
["Gateway::getAllUidCount()"]=>
int(5)
["getClientIdByUid"]=>
array(1) {
[0]=>
string(20) "000000000beb00000320"
}
}
array(2) {
["Gateway::getAllUidCount()"]=>
int(5)
["getClientIdByUid"]=>
array(1) {
[0]=>
string(20) "000000000beb00000320"
}
}
array(2) {
["Gateway::getAllUidCount()"]=>
int(5)
["getClientIdByUid"]=>
array(1) {
[0]=>
string(20) "000000000beb00000320"
}
}
array(2) {
["Gateway::getAllUidCount()"]=>
int(5)
["getClientIdByUid"]=>
array(1) {
[0]=>
string(20) "000000000beb00000320"
}
}
PHP Fatal error: Uncaught Exception: Gateway::getAllGatewayAddressesFromRegister() with registerAddress:"127.0.0.1:1239" return array (
) in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php:1314
Stack trace:
#0 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(726): GatewayClient\Gateway::getAllGatewayAddressesFromRegister()
#1 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(701): GatewayClient\Gateway::getAllGatewayAddress()
#2 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(650): GatewayClient\Gateway::getBufferFromAllGateway()
#3 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(445): GatewayClient\Gateway::select()
#4 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(466): GatewayClient\Gateway::getAllUidList()
#5 /www/wwwroot/GatewayWorker/bin/demo.php(26): GatewayClient\Gateway::getAllUidCount()
#6 {main}
thrown in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php on line 1314
Fatal error: Uncaught Exception: Gateway::getAllGatewayAddressesFromRegister() with registerAddress:"127.0.0.1:1239" return array (
) in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php:1314
Stack trace:
#0 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(726): GatewayClient\Gateway::getAllGatewayAddressesFromRegister()
#1 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(701): GatewayClient\Gateway::getAllGatewayAddress()
#2 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(650): GatewayClient\Gateway::getBufferFromAllGateway()
#3 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(445): GatewayClient\Gateway::select()
#4 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(466): GatewayClient\Gateway::getAllUidList()
#5 /www/wwwroot/GatewayWorker/bin/demo.php(26): GatewayClient\Gateway::getAllUidCount()
#6 {main}
thrown in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php on line 1314
有时候返回的数据是正常的, 有时候报错
运行ps auxf ,看下是不是启动了多个register进程。