Mosquitto ERR_CONNECTION_REFUSED с использованием веб-сокетов (клиент paho) на win 10

Прочитал все темы с похожими вопросами, но ответа не нашел.

Конфигурация москита:

listener 1883 127.0.0.1
protocol mqtt
listener 9001 127.0.0.1
protocol websockets

вывод журнала:

1567705166: mosquitto version 1.6.2 starting
1567705166: Config loaded from C:\Program Files (x86)\mosquitto\mosquitto.conf.
1567705166: Opening ipv4 listen socket on port 1883.
1567705166: Opening websockets listen socket on port 9001.
1567705166: Opening websockets listen socket on port 1883.

Инструменты разработчика Chrome:

mqttws31.js:977 WebSocket connection to 'ws://127.0.0.1:9001/mqtt' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

Я пробовал много вещей, но ничего не помогло:

  1. Пробую только вебсокеты
  2. Пробуем другой порт (1883 и 9001 вместо 8080)
  3. Отключение брандмауэра Windows

Если я изменю файл конфигурации на:

#listener 1884 127.0.0.1
#protocol mqtt
#listener 1883 127.0.0.1
protocol websockets

Mosquitto прослушивает веб-сокеты на порту 1883, но файл журнала гласит:

1567706943: mosquitto version 1.6.2 starting
1567706943: Config loaded from C:\Program Files (x86)\mosquitto\mosquitto.conf.
1567706943: Opening websockets listen socket on port 1883.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.
1567706943: Error in poll: No error.

меняю конфиг на:

protocol websockets
listener 8080 127.0.0.1
protocol mqtt

Дает мне файл журнала, который говорит:

1567707450: mosquitto version 1.6.2 starting
1567707450: Config loaded from C:\Program Files (x86)\mosquitto\mosquitto.conf.
1567707450: Opening ipv4 listen socket on port 8080.
1567707450: Opening websockets listen socket on port 1883.

(без лишней хуйни)

После ответа на ответ № 1:

конфигурация:

protocol websockets
listener 1883 127.0.0.1
protocol mqtt

консоль:

WebSocket connection to 'ws://127.0.0.1:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

журнал:

1567716915: mosquitto version 1.6.2 starting
1567716915: Config loaded from C:\Program Files (x86)\mosquitto\mosquitto.conf.
1567716915: Opening ipv4 listen socket on port 1883.
1567716915: Opening websockets listen socket on port 1883.
1567716920: New connection from 127.0.0.1 on port 1883.
1567716920: Socket error on client <unknown>, disconnecting.
1567716920: New connection from 127.0.0.1 on port 1883.
1567716920: Socket error on client <unknown>, disconnecting.
5492: Error in poll: No error.
1567715492: Error in poll: No error.
1567715492: Error in poll: No error.
1567715492: Error in poll: No error.
1567715492: Error in poll: No error.
1567715492: Error in poll: No error.

Пробовал другой клиент веб-сокетов (https://www.eclipse.org/paho/clients/js/utility/) --> Ошибка подключения: AMQJSC0001E Время ожидания подключения истекло.

Я не могу заставить веб-сокеты работать с любой конфигурацией/портом... Может ли кто-нибудь подтвердить, что веб-сокеты в Mosquitto (32-битная версия 1.6.2 или 1.6.4) для Win10 работают?


person Bigman74066    schedule 05.09.2019    source источник
comment
Где вы взяли сборку Windows Mosquitto?   -  person hardillb    schedule 05.09.2019
comment
Забыл где... Где лучше взять?   -  person Bigman74066    schedule 05.09.2019
comment
Используйте официальные сборки с mosquitto.org   -  person hardillb    schedule 05.09.2019
comment
Проверено, я получил его оттуда (32-битная сборка). Нажал на 1.6.4, но это дало мне версию 1.6.2 (не 1.6.4!?)   -  person Bigman74066    schedule 06.09.2019
comment
Загрузка сейчас исправлена, теперь должна выдавать 1.6.4   -  person hardillb    schedule 06.09.2019
comment
Попробую 1.6.4. завтра   -  person Bigman74066    schedule 06.09.2019
comment
Пробовал Win32 1.6.4, но при загрузке все равно получил 1.6.2. X64 V1.6.4. вылетает без сообщения об ошибке. В файле readme также говорится, что вам нужно добавить SLL DLL вручную, но они, кажется, включены в загрузку...   -  person Bigman74066    schedule 08.09.2019


Ответы (2)


Ваш первый файл конфигурации не будет работать, потому что у вас есть и собственный MQTT, и веб-сокеты, пытающиеся прослушивать порт 1883 (это потому, что прослушиватель по умолчанию запускается на порту 1883). Не уверен на 100%, как это возможно, если только это не какой-то странный IPv6 дело в винде.

Во-вторых, просто изменить протокол прослушивателя по умолчанию на Websockets, который теоретически должен работать, если вы попытаетесь подключиться к порту 1883 с веб-страницы.

Третий делает слушателя по умолчанию на порту 1883 Websockets и нативным на 8080. Опять же, должно работать, если вы пытаетесь подключиться к 1883.

Простейшая конфигурация для включения веб-сокетов должна выглядеть так:

listener 9001 127.0.0.1
protocol websockets

Это оставит собственный прослушиватель по умолчанию только на порту 1883 (прослушивание на всех интерфейсах, используйте bind_address 127.0.0.1 перед строкой listener, чтобы он прослушивал только на локальном хосте) и запустит прослушиватель Websocket на порту 9001.

person hardillb    schedule 05.09.2019
comment
Я попробовал то, что вы предлагаете сделать. Это файл журнала результата (извините за плохое форматирование) 1567715492: mosquitto версии 1.6.2, начиная с 1567715492: Config загружен из C:\Program Files (x86)\mosquitto\mosquitto.conf. 1567715492: открытие сокета прослушивания веб-сокетов на порту 9001. 1567715492: открытие сокета прослушивания веб-сокетов на порту 1883. 1567715492: ошибка в опросе: нет ошибки. 1567715492: Ошибка в опросе: Нет ошибки. 1567715492: Ошибка в опросе: Нет ошибки. 1567715492: Ошибка в опросе: Нет ошибки. 1567715492: Ошибка в опросе: Нет ошибки. - person Bigman74066; 05.09.2019
comment
Команда bind выдает ошибку при запуске Mosquitto, поэтому я ее пропустил... - person Bigman74066; 05.09.2019
comment
Ответы в консоли chrome: соединение WebSocket с «ws://127.0.0.1:9001/mqtt» не удалось: ошибка при установлении соединения: net::ERR_CONNECTION_REFUSED - person Bigman74066; 05.09.2019
comment
Отредактируйте вопрос, чтобы добавить детали. Также это должно было быть bind_address, а не bind - person hardillb; 05.09.2019

Это оказалось довольно сложной задачей.

Сначала я попытался заставить все работать, используя онлайн-брокера и клиента. До сих пор не работает. Затем я переключился на другой компьютер, и все работало нормально.

Вернувшись к исходному компьютеру, я решил проверить, работают ли вообще веб-сокеты, перейдя по адресу https://www.websocket.org/echo.html С этого момента все заработало. Сначала онлайн-брокер и клиент, а затем локальный сервер и клиенты. Я не имею понятия почему...

person Bigman74066    schedule 08.09.2019