gatewayClient类 isUidOnline 方法

蓝天lucky

使用gatewayClient 这个 isUidOnline  方法     在客户端突然断网时  加着心跳 也依然是 当前客户端在线  这块 各位有遇到么 

2582 1 0
1个回答

phpcreeper

1、客户端突然断网这种极端情况,服务器是无法感知到客户端连接已经断开的,所以服务端调用gatewayClient::isUidOnline 应该会出现还在线的情况。
2、你这个心跳是怎么加的? 最好就是要求客户端定期发送心跳包,若规定时间内没有收到,则服务端强行干掉这个连接,此时调用 gatewayClient::isUidOnline  应该是OK了。

  • 蓝天lucky 2018-12-28

    嗯嗯 我发现是我没有设置 $gateway->pingNotResponseLimit = 1; 这个的原因
    如果我一旦设置这个 就需要服务端在给客户端在send(pong)吧

  • phpcreeper 2018-12-28

    pingNotResponseLimit 取值:
    (1) 0 代表服务端不要求客户端发送心跳,也就是客户端发不发我服务端不关心。
    (2) 1 代表服务端要求客户端必须发送心跳,也就是规定时间不发我就干掉你。

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