使用 NodeJS 在 mosquitto MQTT 和 EMQX 之间建立桥梁
Creating a bridge between mosquitto MQTT and EMQX using NodeJS
我已经在 2 个不同的应用程序中使用 NodeJs 设置了 mosquitto 并使用 NodeJs 设置了 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'
}
});
我的 EMQ 与 NodeJs 的连接。
var client = mqtt.connect('ws://100.84.81.28:8083/mqtt');
正如评论中所说,网桥是您必须在代理中配置的东西,而不是客户端。
以下将不起作用,您已告知客户端库使用带有 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,而不是基于 websockets 的 MQTT。
我已经在 2 个不同的应用程序中使用 NodeJs 设置了 mosquitto 并使用 NodeJs 设置了 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'
}
});
我的 EMQ 与 NodeJs 的连接。
var client = mqtt.connect('ws://100.84.81.28:8083/mqtt');
正如评论中所说,网桥是您必须在代理中配置的东西,而不是客户端。
以下将不起作用,您已告知客户端库使用带有 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,而不是基于 websockets 的 MQTT。