Подключиться к брокеру hivemq через MQTT - PullRequest
0 голосов
/ 05 мая 2020

В моем приложении. js:


  var mqtt = require('mqtt')
  var client  = mqtt.connect('mqtt://localhost:1883')
  topic = 'testTopic'

  client.on('connect', ()=> {
    client.subscribe(topic)
  })

  client.on('message', function (topic, message) {
    console.log(message.toString())
  })

Я подключился к серверу hivemq-cli и hivemq, затем создал новый topi c testTopic в Test1 подписках, а другой подписаться на testTopic pic1

В hivemq-cli все нормально, в моем терминале:

testTopic3@localhost> sub -t testTopic -s
Hello
Hello
Hello
Hello
Hello
Hello
Hi
Hi
Hi

Но когда я использую npm start, мой веб-приложение сообщило, что: Firefox не может установить sh соединение с сервером по адресу ws: // localhost: 1883 / и ничего не вернуть.

Я был в этой проблеме целый день , так что мне очень нужна помощь. Большое спасибо!

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Вам необходимо настроить прослушиватель в конфигурации HiveMQ (conf / config. xml) и использовать правильный порт и путь при подключении вашего клиента. Конфигурация по умолчанию не содержит прослушивателя WebSocket.

Пример конфигурации:

<hivemq>
    <listeners>

        <!-- default configuration -->
        <tcp-listener>
            <port>1883</port>
            <bind-address>0.0.0.0</bind-address>
        </tcp-listener>

        <!-- WebSocket configuration -->
        <websocket-listener>
            <port>8000</port>
            <bind-address>0.0.0.0</bind-address>
            <path>/mqtt</path>
            <subprotocols>
                <subprotocol>mqttv3.1</subprotocol>
                <subprotocol>mqtt</subprotocol>
            </subprotocols>
            <allow-extensions>true</allow-extensions>
        </websocket-listener>
    </listeners>
<hivemq>

В этом примере вам необходимо подключить своего клиента к ws: // localhost: 8000 / mqtt

Более подробную информацию по настройке можно найти в документации: https://www.hivemq.com/docs/hivemq/latest/user-guide/listeners.html#websockets

1 голос
/ 05 мая 2020

Вы используете веб-сокеты (ws: //) в своем веб-приложении, который, вероятно, отличается от порта MQTT 1883 (mqtt: //).

...