Создание моста между Mosquitto MQTT и EMQX с использованием NodeJS - PullRequest
0 голосов
/ 08 ноября 2018

Я настроил москит с NodeJ и EMQX с NodeJ в 2 различных приложениях. Я хочу создать мост между обоими клиентами MQTT и отправлять и получать значения с обоих концов.

Попытка создания моста с использованием параметров WebSocket в моем пакете 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 Ответ

0 голосов
/ 08 ноября 2018

Как сказано в комментариях, мосты - это то, что вы должны настраивать в брокере, а не в клиенте.

Следующее не будет работать, вы сказали клиентской библиотеке подключаться к брокеру, используя собственный 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 через веб-сокеты.

...