我正在使用带有express和mqtt包的NodeJS。 每当用户按下值为“test”的按钮时,就应该发送一条 MQTT 消息。
但是,每当我发送 mqtt 消息时,它要么在我使用“client.end()”时发送一次,要么不断发送消息。当我再次按下按钮时,我无法发送两次
我使用以下代码:
module.exports =
{
Send
};
function Send(User){
client.on('connect', function() {
client.publish('alarm/reset', 'Hallo' + Test);
client.end();
});
}
在“\”中使用以下代码
router.post('/', Authencitation, function(req,res){
var test = req.body.test;
if (test == 'test')
{
reset.Send(req.session.user);
console.log('inside reset');
}
res.redirect('/');
});
但是,每当单击按钮时,我总是会进入重置内的函数。看来这是函数 Send(User) 中犯的一个错误,但我无法发现该错误。
最佳答案
以下解决方案对我有用:
function Send(Test){
var mqtt = require('mqtt');
var client = mqtt.connect()
client.on('connect', function() {
client.publish('Test', 'Hallo' + username);
client.end();
});
}
关于javascript - Nodejs 和 mqtt 发送消息一次或不断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41904398/