Создание моста между Mosquitto MQTT и EMQX с использованием NodeJS
Я настроил комаров с NodeJs и EMQX с NodeJs в 2 различных приложениях. Я хочу создать мост между обоими клиентами MQTT и отправлять и получать значения с обоих концов.
Попытался создать мост с помощью WebSocket Options в моем пакете MQTT npm.
var client = mqtt.connect('mqtt://test.mosquitto.org', {
clientId: 'mqttjs_6fa3a7ee3d',
wsOptions: {
host: '100.84.81.28',
port: 8083,
path: '/mqtt'
}
});
Мое соединение EMQ с NodeJ.
var client = mqtt.connect('ws://100.84.81.28:8083/mqtt');
1 ответ
Как сказано в комментариях, мосты нужно настраивать в брокере, а не в клиенте.
Следующее не будет работать, вы сказали клиентской библиотеке подключиться к брокеру, используя собственный MQTT с mqtt://
URL-префикс. Это означает, что он будет полностью игнорировать 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, а не MQTT через веб-сокеты.