我想要实现的场景是,首先我的服务将连接到 mqtt 代理,当我收到来自遗嘱主题的消息时,我想将其与代理断开连接,我的 mqtt 客户端已连接并连接到其他一些broker.是否可以使用nodejs库来做到这一点?
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://192.168.100.3')
client.on('connect', function () {
console.log("connected to broker")
client.subscribe('mqtt_node_subscribe')
client.publish('mqtt_node_publish', 'Hello mqtt')
})
client.on('close',function(){
console.log("connection closed")
})
client.on('message', function (topic, message) {
// message is Buffer
console.log("message arrived")
client.end()
client = mqtt.connect('mqtt://192.168.100.14')
}})
我能够与当前代理断开连接,但无法连接到另一个代理,断开连接后控制台消息为:
connected to broker
message arrived
connection closed
最佳答案
您要替换客户端对象,因此需要重新创建所有事件处理程序
例如
client.on('message', function (topic, message) {
// message is Buffer
console.log("message arrived")
client.end()
client = mqtt.connect('mqtt://192.168.100.14');
client.on('connect', function () {
...
});
client.on('close',function(){
...
})
}})
关于node.js - 使用nodejs lib与另一个代理断开连接后连接到mqtt代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47708774/