我使用的是webman,安裝的GatewayWorker代碼如下:
我使用的tcp服務(wù),硬件那邊主動(dòng)連接我處理一些請(qǐng)求之后返回結(jié)果給硬件端。
現(xiàn)在是在硬件跟我請(qǐng)求處理的時(shí)候可能時(shí)間會(huì)大于pingInterval設(shè)置的時(shí)間,這樣我服務(wù)器就會(huì)給硬件發(fā)送ping 的心跳包,但是在處理請(qǐng)求的時(shí)候硬件那邊說不能接受其它無關(guān)數(shù)據(jù)。就是發(fā)送這個(gè)ping包不可以。我想問下這樣有什么好的解決辦法嗎,我把pingData設(shè)置為空可以嗎。如果為空會(huì)怎么樣。謝謝大家了
'gatewaytcp' => [
'handler' => Gateway::class,
'listen' => 'text://0.0.0.0:7373',
'count' => cpu_count(),
'reloadable' => false,
'constructor' => ['config' => [
'lanIp' => '127.0.0.1',
'startPort' => 3300,
'pingInterval' => 25,
'pingData' => '{"type":"ping"}',
'registerAddress' => '127.0.0.1:1236',
'onConnect' => function(){},
]]
],
public static function onMessage($client_id, $message)
{
Log::notice($message);
// 發(fā)送響應(yīng)給客戶端
Gateway::sendToClient($client_id, "okkkkk");
}
pingData 可以設(shè)置為空,設(shè)為空需要客戶端發(fā)送心跳
http://wtbis.cn/doc/gateway-worker/heartbeat.html