2015-06-04 3 views
1

Я пытаюсь объединить два брокера MQTT в той же системе, HiveMQ и Mosquitto. HiveMQ работает на порту 1884 и Mosquitto работает на 1883. Однако, когда я использую команду mosquitto_pub для публикации на mosquitto брокера в порту 1883, он не отображается на порт 1884 (Использование MQTT.fx в качестве клиента, подписавшись на все темы на порту 1884)мосты mqtt брокеры hivemq и mosquitto

Это в то время как я только настроен mosquitto брокера с мостом. Когда я сконфигурировал HiveMQ, он отображает сообщение unable to connect to Bridge1, disconnected в командном окне HiveMQ. Я включил конфигурации ниже. Кто-то, пожалуйста, помогите.

В файле mosquitto.config я сделал следующее под bridges.

connection hivemq 
    address 127.0.0.1:1884 
    start_type automatic 
    clientid clientno1 
    notifications true 

Между тем, я также Editted файл HiveMQ bridges.xml читать

<?xml version="1.0" encoding="UTF-8"?> 
<bridges xsi:noNamespaceSchemaLocation="http://www.hivemq.com/bridges/bridge.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<bridge> 
    <connectionName>Bridge1</connectionName> 
    <addresses> 
     <address> 
      <host>localhost</host> 
      <port>1883</port> 
     </address> 
    </addresses> 
    <clientId>bridgeClient</clientId> 
    <topicPatterns> 
     <topicPattern> 
      <topic>#</topic> 
      <qos>1</qos> 
      <direction>both</direction> 
      <localPrefix>local/</localPrefix> 
      <remotePrefix>remote/</remotePrefix> 
     </topicPattern> 
    </topicPatterns> 
    <cleanSession>true</cleanSession> 
    <idleTimeout>10</idleTimeout> 
    <notificationsEnabled>true</notificationsEnabled> 
    <tryPrivate>true</tryPrivate> 

</bridge> 

The image below is when I tried the same process on another system. Here, the brokers are bridged. Comparing this to what I was doing earlier, the only difference is that on my original system there is no statement saying opening ipv4 listen socket on 1883. Is this the problem?

Изображение, показанное, когда я попробовал тот же процесс на другой системе. Здесь брокеры мосты. Сравнивая это с тем, что я делал ранее, единственное различие заключается в том, что в моей исходной системе нет инструкции, говорящей об открытии ipv4 listen socket на 1883. Это проблема?

ответ

0

Bridging должны быть установлены только на издателе/​​стороне клиента (mosquitto в вашем случае), в результате чего параметры по умолчанию на Hivemq (сервер) должен быть хорошо

Попробуйте внести изменения в mosquitto.conf

connection bridge-mosquitto-to-hivemq 
address 127.0.0.1:1884 
topic room1/# both 2 sensor/ myhouse/ 
bridge_protocol_version mqttv311 
notifications true 
cleansession true 
try_private true 

После перезагрузки ваших брокеров, на mosquitto брокера, попробуйте опубликовать пример сообщение ниже

mosquitto_pub -t sensor/room1/temperature -m '26.3' 
0

Вы должны только должны иметь мост, выполненный в одном из брокеров, имеющих мосты, сконфигурированные для обоих приведет к проблемам, скорее всего, сообщение петли

Для вашего mosquitto конфигурации вам нужно добавить тему линии к вашему mosquitto мосту, чтобы знать, какие темы, чтобы отправить (и получать) в улей брокер

полной информации о директиве темы можно найти на странице mosquitto.conf человека (http://mosquitto.org/man/mosquitto-conf-5.html), но основы являются:

topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]

Чтобы отразить все темы в обоих направлениях

topiC# both 
+0

Я только сконфигурировал мост на 'mosquitto', а теперь добавил в строку темы в файле конфигурации. Все еще не мосты. – avelampudi

+0

Получает ли вывод москитов что-нибудь о мосту? – hardillb

+0

Ничего. Я не могу сказать, настроен он или нет. Оба работают отлично друг от друга, но 'mosquitto' ничего не показывает о мосте. Я немного озадачен. – avelampudi

Смежные вопросы