在MQTT第一次收到消息后,我想设置超时约1分钟。如果在1分钟内没有更多消息,我想通知一些事情。有什么方法可以做到吗?
client.on('message', function (topic, message) {
// if in one minute timeout, there is no more message
// console.log("warning")
}
答案 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)