mqtt node js模块的Mosquitto持久性问题
Mosquitto persitence problems with mqtt nodejs module
我正在尝试使用 mosquitto 代理 运行 基本队列实现,当消费者和生产者正常 运行 时它工作正常。如果我 运行 生产者然后我 运行 消费者我无法获得消息(数据)。我在将消息发布到主题时使用 qos:2。我正在使用 mqtt.js
的 nodejs 语言
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)
})
});
您需要订阅 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());
});
我正在尝试使用 mosquitto 代理 运行 基本队列实现,当消费者和生产者正常 运行 时它工作正常。如果我 运行 生产者然后我 运行 消费者我无法获得消息(数据)。我在将消息发布到主题时使用 qos:2。我正在使用 mqtt.js
的 nodejs 语言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)
})
});
您需要订阅 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());
});