gatewayworker 有时不主动发ping 为什么

songtl1982
// 心跳间隔
$device_gateway->pingInterval = 10;
// 心跳数据
$device_gateway->pingData = '{"type":"ping"}';
//无反应断开次数
$device_gateway->pingNotResponseLimit = 5;

这是我设置的心跳检测,
设备端是收到ping后返回pang.

但是有时(大部分时候正常,服务器也未动过任何改动及操作)服务器端不主动发ping给设备,设备就不返回pang给服务器,造成设备服务器断开连接。
为什么服务器不发送ping,怎么解决这个不发送的问题?

2767 2 0
2个回答

walkor

你怎么知道没有ping。

你可以在服务端抓包看下,是否发送了ping。
如果没发送,说明链接已经断开了

  • 暂无评论
songtl1982

其他数据(我自己写的推送到设备的程序)推送都正常,设备端能收到。

或者设备端向服务器端发送数据,如:get_list,服务器onMessage后sendToCurrentClient,设备端也正常收到数据。(get_list为不定时发送,大约1小时以上的)
//设备请求广告列表
case 'get_list':
$res = self::adList($message_data);
Gateway::sendToCurrentClient($res);
return;

这是我判断的方法。
我接下来试试服务端抓包。

  • walkor 2016-10-12

    这些不代表服务端没发送ping啊

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