Мы рассматриваем использование MQTT в качестве протокола обмена сообщениями на новом устройстве, которое мы создаем. Нам также нужен веб-интерфейс для устройства. Кто-нибудь знает, можете ли вы реализовать клиентское приложение браузера (без дополнительных плагинов), в котором говорится о MQTT?
Может ли веб-браузер использовать MQTT?
Ответ 1
Да, как упоминалось в комментарии Steve-o MQTT через websockets очень возможно.
В настоящий момент есть 2 варианта
- IBM MQ 7.5 поставляется с поддержкой websockets, вы можете найти детали here.
- У брокера Mosquitto есть javascript-клиент с примером здесь.
Чтобы ответить на ваш второй вопрос, lighttpd имеет модуль веб-карт, который можно использовать для пересылки существующего брокера с подробностями здесь.
Я не смог найти что-либо для Apache, вам не нужно писать свою собственную библиотеку для пересылки.
Ответ 2
Чтобы продлить решение hardillbs:
Теперь есть третий вариант:
HiveMQ поддерживает собственные веб-сайты без необходимости использования какого-либо внешнего веб-сервера. Он отлично работает с клиентом Javascript Eclipse Paho.
Если вы хотите попробовать, общедоступный MQTTDashboard (который использует HiveMQ под капотами) поддерживает веб-порты на порту 8000.
Раскрытие информации: Я являюсь одним из разработчиков HiveMQ
Ответ 3
IBM выпустила клиентский JavaScript-клиент на основе WebSockets. Это open-source на Eclipse Paho.
Git репозиторий: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
Учебник здесь. https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en
Ответ 4
У нас был хороший опыт использования WSS, WebSocket для TCP-шлюза (для MQTT). Это означает запуск отдельного процесса, но это не позволяет изменять конфигурацию Apache. WSS также поддерживает TLS.
Ответ 5
Блог jpmens является хорошей отправной точкой для установки москитов с функцией websocket. Он клиентский код javascript на основе Paho находится в github.
Этот блог "Как запустить ваш веб-сервер и брокер MQTT WebSockets на том же сервере" объясняет два пути для серверной части:
- mosquitto с конфигурацией http
- апач + mod_websocket_mosquitto
Ответ 6
Не Apache, но вы можете следовать этому руководству, чтобы установить lighttpd с mod_websocket,
но для удобства использования я настоятельно рекомендую HiveMQ, как рекомендует @Dominik.
Ответ 7
Почему бы не nodejs
+ socket.io
? Они поставляются со всеми включенными гаджетами (webscokets, pub/sub, webserver, mqtt broker...).
SocketCluster - еще одна хорошая отправная точка.
Ответ 8
Эта ссылка (Скачать коды) полезна. Скачайте его и изменяйте этот файл mosq-mqttws31.html. Вместо встроенной библиотеки java script используйте этот cdn
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
а клиентский экземпляр должен быть client = new Paho.MQTT.Client( "test.mosquitto.org", 8080, "myclien256tiddd_" + parseInt (Math.random() * 100, 10));