node.js - 使用nodejs lib与另一个代理断开连接后连接到mqtt代理

标签 node.js mqtt

我想要实现的场景是,首先我的服务将连接到 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/

相关文章:

javascript - 如何使用通配符在 Mongodb 上进行搜索?

使用 SSL 的 Node.js 网站,出现 "Refused to connect"错误

node.js - nodemailer 出现 EHOSTUNREACH 错误

mqtt - 接收离线消息mqtt

python - MQTT 客户端不断断开连接

node.js - 如何将用户连接到套接字

javascript - 使用 C++ 中的构造函数时 ffi 的返回类型是什么

JAVA Paho mqtt - 发布到通配符

android - 物联网请求响应协议(protocol)

ios - 当字节通过不同的平台时,如何使字节按正确的顺序排列?