2017-10-28 12 views
1

初めてMQTTによってメッセージを受信した後、約1分間のタイムアウトを設定したいとします。 1分でメッセージがなくなったら、何かに通知したい。私はそれを行うことができる方法はありますか?Nodejs MQTT:メッセージ受信後のタイムアウトの設定

client.on('message', function (topic, message) { 
    // if in one minute timeout, there is no more message 
    // console.log("warning") 
} 
+0

何を試しましたか? – hardillb

+0

settimeout funcをclient.on()の外にコールバックしようとしましたが、期待通りに動作しませんでした。 –

+1

次に、試した内容と、それが何を望んだのか、誰かが何をしたのかを示す質問を編集します。それを修正するのに役立ちます。 – hardillb

答えて

2

Client.on()関数は、メッセージを受信した場合にのみトリガします。 setInterval()関数は、1秒後に連続して実行される外部で使用できます。今すぐカウントし、1分になったら何かを通知することができます。メッセージが受信されたときや1分になったときにカウンタを初期化することを忘れないでください。

次のコードは、1分後に受信したメッセージがないかどうかを検出します。

var i = 1 
client.on('message', function (topic, message) { 
console.log(message.toString()) 
i=1 
}) 

setInterval(function(){ 
i++ 
if(i==60) 
{ 
console.log("No Msg"); 
i=1; 
} 
},1000) 
関連する問題