nodejs和mqtt一次或不断地发送消息

时间:2017-01-27 23:00:24

标签: javascript node.js mqtt

我正在使用带有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)中的一个错误,但我无法发现错误。

1 个答案:

答案 0 :(得分:1)

以下解决方案为我工作:

function Send(Test){

var mqtt = require('mqtt');

var client  = mqtt.connect()

client.on('connect', function() {

client.publish('Test', 'Hallo' + username);


client.end();   
    });

}