Проблемы с сохранением Mosquitto с модулем mqtt nodejs - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь запустить базовую реализацию очереди с помощью mosquitto broker. Она работает нормально, когда потребитель и производитель работают нормально. Если я запускаю производителя, а затем запускаю потребителя, я не могу получить сообщение (Данные). Я использую qos: 2 при публикации сообщения в теме. Я использую язык nodejs с mqtt.js

consumer.js

const mqtt = require ('mqtt');
var options = {}
options.clientId = 'mqttjs_consumer'
options.clean = false
options.debug = true
var client  = mqtt.connect('mqtt://localhost',options);

client.on('connect', function () {
  client.subscribe('topic/sample',function(){
    console.log('client has subscribed successfully');
  });

});

client.on('message', function (topic, message){
  console.log(message.toString());
});

Producer.js

const mqtt = require ('mqtt');
var options = {}
options.clientId = 'mqttjs_producer'
options.debug = true
var client  = mqtt.connect('mqtt://localhost',options);

client.on('connect', function(){
  client.publish('topic/sample','message_data',{qos:2},function(err,status){
    console.log(err,status)
    process.exit(0)
  })
});

1 Ответ

0 голосов
/ 26 октября 2018

Вам нужно подписаться на QOS 2, а не просто публиковать с QOS 2.

const mqtt = require ('mqtt');
var options = {}
options.clientId = 'mqttjs_consumer'
options.clean = false
options.debug = true
var client  = mqtt.connect('mqtt://localhost',options);

client.on('connect', function () {
  client.subscribe('topic/sample',{qos:2}, function(){
    console.log('client has subscribed successfully');
  });

});

client.on('message', function (topic, message){
  console.log(message.toString());
});
...