GatewayWorker绑定了uid,getClientIdByUid()方法获取不到client_id,返回空数组

Answer

我在登录的时候将用户id和client_id绑定了。然后在自定义的控制器中获取好友的uid、并用getClientIdByUid()这个方法去获取好友的client_id,返回是一个空数组。我想问问是不是bindUid和getClientIdByUid是不是只能在同一个地方用。在其他地方就获取不到了?

3584 2 0
2个回答

six

不是

  • Answer 2019-03-17

    那请问一下通过getClientIdByUid这个函数获取不到id有什么原因呢

  • six 2019-03-17

    uid传错了或者client_id已经离线了,还有可能是用了gatewayClient和GatewayWorker的版本不一致

  • Answer 2019-03-17

    在bindUid方法后面我去用getClientIdByUid是正常拿到client_id.在另一个控制器下就不行。空数组,很奇怪。而且我把uid写死了去测试,也是登录状态。版本我也看了都是3.0.12

  • Answer 2019-03-17

    @1393:我刚刚发现我刚刚连接了socket,onClose方法就执行了。可是我在js中没有用close方法,后台代码也没有关闭socket。这是怎么回事呢

jack

我也遇到类似问题,请问你楼主的问题解决了吗
 
我的报如下错误:
getAllGatewayAddressesFromRegister fail. tcp://127.0.0.1:8586 return 'HTTP/1.1 400 Bad Request

  • Answer 2019-03-20

    我的问题是在于我在登录页面用webSocket建立了连接并且bindUid,当网页跳转后,连接就断开了。断开之后后台的一系列操作就不能正常执行的

  • Answer 2019-03-20

    一般来说,如果正常绑定,是可以用getClientIdByUid的。如果不能用,就应该去查看连接了。你这个注册地址的话,就去start_register.php文件看看端口绑定什么的

  • jack 2019-03-20

    我找到原因了,我应该用gatewayclient,而不是用GatewayWorker

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