使用NodeJS在mosquitto MQTT和EMQX之间建立桥梁

时间:2018-11-08 08:57:36

标签: mqtt mosquitto emq

我已经在2个不同的应用程序中使用NodeJ设置了mosquitto,使用NodeJ设置了EMQX。我想在我的两个MQTT客户端之间建立一个桥梁,并从两端发送和接收值。

试图在我的MQTT npm软件包中使用WebSocket选项创建网桥。

var client = mqtt.connect('mqtt://test.mosquitto.org', {
  clientId: 'mqttjs_6fa3a7ee3d',
  wsOptions: {
  host: '100.84.81.28',
  port: 8083,
  path: '/mqtt'
}
});  

我与NodeJ的EMQ连接。

var client = mqtt.connect('ws://100.84.81.28:8083/mqtt');

1 个答案:

答案 0 :(得分:0)

如评论中所述,桥接器是您必须在代理而不是客户端中配置的东西。

以下内容将不起作用,您已告知客户端库使用带有mqtt:// URL前缀的本机MQTT连接到代理。这意味着它将完全忽略设置对象中的wsOptions块。

var client = mqtt.connect('mqtt://test.mosquitto.org', {
  clientId: 'mqttjs_6fa3a7ee3d',
  wsOptions: {
  host: '100.84.81.28',
  port: 8083,
  path: '/mqtt'
}
}); 

此外,您不能让客户端尝试一次连接到2个单独的代理(您可以有2个单独的客户端实例)。

要配置网桥,您需要查看mosquitto.conf文档,您将需要运行自己的mosquitto实例,不能使用test.mosquitto.org,因为无法更改其配置。桥梁需要使用本机MQTT来构建,而不是通过Websocket上的MQTT来构建。