// 心跳間隔
$device_gateway->pingInterval = 10;
// 心跳數(shù)據(jù)
$device_gateway->pingData = '{"type":"ping"}';
//無(wú)反應(yīng)斷開(kāi)次數(shù)
$device_gateway->pingNotResponseLimit = 5;
這是我設(shè)置的心跳檢測(cè),
設(shè)備端是收到ping后返回pang.
但是有時(shí)(大部分時(shí)候正常,服務(wù)器也未動(dòng)過(guò)任何改動(dòng)及操作)服務(wù)器端不主動(dòng)發(fā)ping給設(shè)備,設(shè)備就不返回pang給服務(wù)器,造成設(shè)備被服務(wù)器斷開(kāi)連接。
為什么服務(wù)器不發(fā)送ping,怎么解決這個(gè)不發(fā)送的問(wèn)題?
其他數(shù)據(jù)(我自己寫(xiě)的推送到設(shè)備的程序)推送都正常,設(shè)備端能收到。
或者設(shè)備端向服務(wù)器端發(fā)送數(shù)據(jù),如:get_list,服務(wù)器onMessage后sendToCurrentClient,設(shè)備端也正常收到數(shù)據(jù)。(get_list為不定時(shí)發(fā)送,大約1小時(shí)以上的)
//設(shè)備請(qǐng)求廣告列表
case 'get_list':
$res = self::adList($message_data);
Gateway::sendToCurrentClient($res);
return;
這是我判斷的方法。
我接下來(lái)試試服務(wù)端抓包。