Запуск примера Paho javascript разрывает сетевое соединение из-за цикла подключения - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь подключиться к локальному брокеру mosqitto mqqt через веб-сокеты и клиент paho javascript. Однако при использовании примера, показанного на https://www.eclipse.org/paho/clients/js/, происходит сбой моего сетевого подключения. В консоли chrome или ie я обнаружил проблему: соединение устанавливается снова и снова (функция onConnect вызывается несколько раз в секунду).

client.connect({onSuccess:onConnect});  
// called when the client connects
function onConnect() {
  // Once a connection has been made, make a subscription and send a message.
  console.log("Connection was successful");
  client.subscribe("World");
  message = new Paho.MQTT.Message("Hello");
  message.destinationName = "World";
  client.send(message);
}

На брокере я вижу клиента, подключающегося:

New client connected from 192.168.1.3 as web_78 (c1, k60, u'user123').

Но сообщение не передается клиентом. Когда я закрываю браузер, я вижу на клиенте:

Socket error on client web_78, disconnecting.

То же самое происходит, когда я пытаюсь использовать другой пример кода, такой как этот: https://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/

Я использую mosquitto версии 1.5 на своем Raspberry Pi и не имею ни малейшего представления, как мне это запустить. Может быть, проблема в сервере москит, а не клиент?

Это часть моего mosquitto.conf, где я определяю порты

listener 9001
protocol websockets

Другие клиенты могут подключаться (например, через Paho Python) и MQTT (без веб-сокетов).

pi@raspberrypi ~ $ sudo mosquitto -c /etc/mosquitto/mosquitto.conf
1530009485: mosquitto version 1.5 starting
1530009485: Config loaded from /etc/mosquitto/mosquitto.conf.
1530009485: Opening websockets listen socket on port 9001.
1530009485: Opening ipv4 listen socket on port 1883.
1530009485: Opening ipv6 listen socket on port 1883.
1530009485: New connection from 192.168.1.51 on port 1883.
1530009485: New client connected from 192.168.1.51 as DVES_9CE05F (c1, k15, u'johann').

Любая помощь будет высоко оценена!

РЕДАКТИРОВАТЬ Обновление:

Проблема должна быть на моем сервере, так как я могу получить доступ к публичному брокеру, такому как HiveMQ.

1 Ответ

0 голосов
/ 08 марта 2019

У меня была такая же проблема.Существует проблема, связанная с libwebsockets в Mosquitto 1.5.x, по крайней мере, в версии, которая установлена ​​на Raspberry Pi с Raspbian jessie.Когда я понизил Mosquitto до 1.4.15, эта проблема была решена для меня.

Прочтите об этом в https://github.com/eclipse/mosquitto/issues/1050

...