我正在使用NodeJS和express和mqtt软件包。每当用户按下值为"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('/');
});
但是,每当单击按钮时,我总是进入重置功能。这似乎是在函数发送(用户)中犯的错误,但我无法发现错误。
以下解决方案对我有用:
function Send(Test){
var mqtt = require('mqtt');
var client = mqtt.connect()
client.on('connect', function() {
client.publish('Test', 'Hallo' + username);
client.end();
});
}