Невозможно установить соединение с веб-сайтами с помощью JavaScript-клиента Mosquitto Broker

Я запускаю сервер MQTT (mosquitto) на моем компьютере с Windows. Служба работает с номером порта 1883.

Загрузили файл mosquitto.js с сайта mosquitto.org и позвонили ниже. Когда я отлаживаю, я вижу результат «connection.readyState == 0». Пожалуйста, помогите мне, если я что-то упускаю. Я использую хромированные и сафари последние версии, чтобы проверить его. Заранее спасибо.

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/JavaScript" src="./js/mosquitto-1.1.js"></script> 

<title>publisher</title>

</head>

<body>
    <table align="center">
        <tr>
            <td>
                

Publisher

<table> <tr> <td></td> </tr> <tr> <td align="center"><input type="button" value="post" onclick="javaScript:postMessage();" /></td> </tr> </table> </td> </tr> </table> </body> <script type="text/javascript"> function postMessage() { var postVal = document.getElementById('txtMsg').value; var t = new Mosquitto(); t.connect('ws://localhost',100000); t.publish('inbox/msgrec',postVal,0,0); }

Нужно ли мне устанавливать сервер причала или использовать node.js для подключения с помощью клиента mosquitto JavaScript или необходимо, чтобы я вносил какие-либо изменения в файл конфигурации в моей установке mosquitto.

0

2 ответы

Mosquitto напрямую не поддерживает WebSockets. Вам нужно что-то еще, что делает и будет транслировать соединение WebSocket, несущее пакеты MQTT (сгенерированные, например, mosquitto.js), в сырой MQTT.

Сервер на test.mosquitto.org имеет lighttpd, работающий как веб-сервер, с mod_websockets для поддержки WebSockets. Этот подход можно подключить к ws: //test.mosquitto.org/mqtt. Вам нужно будет создать подобное решение самостоятельно. Apache также имеет модули websocket, которые могли бы это сделать, или вы могли бы создать свой собственный сервер websocket, используя, например, libwebsockets.

7
добавлено
Это сейчас устарело - test.mosquitto.org слушает веб-порты на порту 8080.
добавлено автор ralight, источник

Разве это не должно быть

t.connect('ws://localhost:1883',100000);

?

0
добавлено
спасибо за ответ, я даже попробовал его
добавлено автор George, источник
Я могу использовать pub/sub с помощью командной строки.
добавлено автор George, источник
Qt
Qt
703 участник(ов)

Группа взаимопомощи Qt.Делимся советами и помогаем друг другу. Наш информационный канал @ProQt Полезная информация для начинающих: #newcomer Познавательная информация: #fyi #didyouknow Наши друзья: Чат с/с++ @ProCxx