Nodejs MQTT:在收到消息后设置超时
问题描述:
在MQTT第一次接收消息后,我想设置超时大约1分钟。如果1分钟内没有更多消息,我想通知一些事情。有什么办法可以做到吗?Nodejs MQTT:在收到消息后设置超时
client.on('message', function (topic, message) {
// if in one minute timeout, there is no more message
// console.log("warning")
}
答
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)
你已经试过了什么? – hardillb
我试图把一个settimeout func放在client.on()外部的回调函数中,但它没有像我期望的那样工作 –
然后编辑问题以显示你所尝试的内容,并描述它做了什么与你想要什么以及有人会帮助你解决它。 – hardillb