Gateway::sendToUid报错

zhule

请问各位大佬,Gateway::sendToUid老是报getAllGatewayAddressesFromRegister错误是什么原因呢

1835 2 0
2个回答

blogdaren

register服务是用于gateway进程和business进程通信的,所以必不可少;
题示报错的话,确认下 register address【$gateway->registerAddress 以及 $business->registerAddress】是不是设置错了?

  • zhule 2020-09-14

    protected static $businessWorker = null;
    public static $registerAddress = '*****:1238';

    $register = new Register('text://0.0.0.0:1238');这样配置没错吧

zhule

protected static $businessWorker = null;
public static $registerAddress = '*****:1238';

$register = new Register('text://0.0.0.0:1238');这样配置没错吧

  • blogdaren 2020-09-14

    嗯,没错,这是register服务自身的设定,让你检查的是start_gateway.php和start_businessworker.php里的配置地址,它们必须完全相同。

  • zhule 2020-09-14

    @614:设置都没问题耶

  • blogdaren 2020-09-14

    不清楚你具体还有啥上下文环境,不过这种问题我感觉排并没有什么技术性难点,很简单,原理就那么回事,实在不行就把register的地址显式打印出来或扔日志里,看register地址到底对不对? 各个业务worker连的register地址也都对不对?对的话然后尝试telnet去连下看是不是OK的? 连不上的时候想想防火墙啥的等等吧......

  • zhule 2020-09-15

    @614:lanIp是Gateway所在服务器的内网IP,默认填写127.0.0.1即可。多服务器分布式部署的时候需要填写真实的内网ip,不能填写127.0.0.1。注意:lanIp只能填写真实ip,不能填写域名或者其它字符串,无论如何都不能写0.0.0.0 .

  • zhule 2020-09-15

    @614:Gateway: Worker->name conflict. Key:127.0.0.1:YourAppBusinessWorker:0 还有一个问题,一直重复发送这个是什么原因呢

  • six 2020-09-15

    Worker->name conflict。Worker->name 冲突。翻译下就懂了啊

  • zhule 2020-09-15

    @1393:那要怎么解决呢

  • six 2020-09-15

    $businessworker->name改成不一样的啊

  • zhule 2020-09-15

    @1393:$gateway->name = 'huanqiuwuGateway';$worker->name = 'huanqiuwu';改了没效果耶

  • zhule 2020-09-15

    @1393:proto user worker listen processes status
    tcp root huanqiuwu none 1 [OK]
    tcp root huanqiuwuAppGateway websocket://0.0.0.0:8282 1 [OK]
    tcp root Register websocket://0.0.0.0:1238 1 [OK]

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