使用gatewayClient 这个 isUidOnline 方法 在客户端突然断网时 加着心跳 也依然是 当前客户端在线 这块 各位有遇到么
1、客户端突然断网这种极端情况,服务器是无法感知到客户端连接已经断开的,所以服务端调用gatewayClient::isUidOnline 应该会出现还在线的情况。 2、你这个心跳是怎么加的? 最好就是要求客户端定期发送心跳包,若规定时间内没有收到,则服务端强行干掉这个连接,此时调用 gatewayClient::isUidOnline 应该是OK了。
嗯嗯 我发现是我没有设置 $gateway->pingNotResponseLimit = 1; 这个的原因 如果我一旦设置这个 就需要服务端在给客户端在send(pong)吧
pingNotResponseLimit 取值: (1) 0 代表服务端不要求客户端发送心跳,也就是客户端发不发我服务端不关心。 (2) 1 代表服务端要求客户端必须发送心跳,也就是规定时间不发我就干掉你。
1、客户端突然断网这种极端情况,服务器是无法感知到客户端连接已经断开的,所以服务端调用gatewayClient::isUidOnline 应该会出现还在线的情况。
2、你这个心跳是怎么加的? 最好就是要求客户端定期发送心跳包,若规定时间内没有收到,则服务端强行干掉这个连接,此时调用 gatewayClient::isUidOnline 应该是OK了。
嗯嗯 我发现是我没有设置 $gateway->pingNotResponseLimit = 1; 这个的原因
如果我一旦设置这个 就需要服务端在给客户端在send(pong)吧
pingNotResponseLimit 取值:
(1) 0 代表服务端不要求客户端发送心跳,也就是客户端发不发我服务端不关心。
(2) 1 代表服务端要求客户端必须发送心跳,也就是规定时间不发我就干掉你。