請問各位大佬,Gateway::sendToUid老是報getAllGatewayAddressesFromRegister錯誤是什么原因呢
register服務是用于gateway進程和business進程通信的,所以必不可少;
題示報錯的話,確認下 register address【$gateway->registerAddress 以及 $business->registerAddress】是不是設置錯了?
protected static $businessWorker = null;
public static $registerAddress = '*****:1238';
$register = new Register('text://0.0.0.0:1238');這樣配置沒錯吧
protected static $businessWorker = null;
public static $registerAddress = '*****:1238';
$register = new Register('text://0.0.0.0:1238');這樣配置沒錯吧
嗯,沒錯,這是register服務自身的設定,讓你檢查的是start_gateway.php和start_businessworker.php里的配置地址,它們必須完全相同。
不清楚你具體還有啥上下文環(huán)境,不過這種問題我感覺排并沒有什么技術性難點,很簡單,原理就那么回事,實在不行就把register的地址顯式打印出來或扔日志里,看register地址到底對不對? 各個業(yè)務worker連的register地址也都對不對?對的話然后嘗試telnet去連下看是不是OK的? 連不上的時候想想防火墻啥的等等吧......
@614:lanIp是Gateway所在服務器的內(nèi)網(wǎng)IP,默認填寫127.0.0.1即可。多服務器分布式部署的時候需要填寫真實的內(nèi)網(wǎng)ip,不能填寫127.0.0.1。注意:lanIp只能填寫真實ip,不能填寫域名或者其它字符串,無論如何都不能寫0.0.0.0 .
@614:Gateway: Worker->name conflict. Key:127.0.0.1:YourAppBusinessWorker:0 還有一個問題,一直重復發(fā)送這個是什么原因呢
@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]