Nodejs MQTT:接收消息后设置超时

时间:2017-10-28 12:41:40

标签: node.js mqtt

在MQTT第一次收到消息后,我想设置超时约1分钟。如果在1分钟内没有更多消息,我想通知一些事情。有什么方法可以做到吗?

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

1 个答案:

答案 0 :(得分:3)

Client.on()函数仅在收到消息时触发。 setInterval()函数可以在外面使用,它会在一秒钟后连续运行。现在计算第二,当它变成一分钟时,你可以通知一些东西。不要忘记在收到消息时或当它成为一分钟时初始化计数器。

以下代码将检测一分钟内是否收到任何消息。

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)