我正在使用带有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)中的一个错误,但我无法发现错误。
答案 0 :(得分:1)
以下解决方案为我工作:
function Send(Test){
var mqtt = require('mqtt');
var client = mqtt.connect()
client.on('connect', function() {
client.publish('Test', 'Hallo' + username);
client.end();
});
}