NodeJS 和 MQTT 发送消息一次或持续发送



我正在使用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();   
    });
}

最新更新