Каковы достоинства MQTT над WebSocket по сравнению с прямым MQTT?
Я рассматриваю использование MQTT в своем проекте, и поэтому хочу знать, почему некоторые люди выбирают MQTT поверх WebSocket вместо прямого MQTT.
Каковы достоинства MQTT над WebSocket по сравнению с прямым MQTT?
Я рассматриваю использование MQTT в своем проекте, и поэтому хочу знать, почему некоторые люди выбирают MQTT поверх WebSocket вместо прямого MQTT.
Вам нужно только запускать MQTT через веб-сокеты, если вы собираетесь публиковать/подписываться на сообщения непосредственно из веб-приложений (на странице).
По сути, я запускаю чистый MQTT для всего и добавляю веб-сокеты, только если вам это действительно нужно.
Для всех языков без браузера клиентские библиотеки MQTT используют только собственный MQTT. Для Javascript есть как чистая библиотека MQTT, так и библиотека страниц Paho in, которая использует веб-сокеты.
Изменение: Вариант использования туннелирования брандмауэра является действительной причиной для использования MQTT над веб-сокетами, и после написания этого ответа, больше ни одна веб-клиент/клиентские библиотеки JavaScript не добавили поддержку
MQTT через веб-сокеты идеально подходит, если когда-либо определенная веб-страница является отправляющим или получающим MQTT-клиентом.
Хорошее описание возможностей MQTT для веб-сокетов можно найти здесь.
Две основные причины использования MQTT над Websockets (что фактически означает переходы по HTTP/HTTPS):
Если вам не нужно или беспокоиться об этом, используйте "direct" MQTT:
MQTT - это протокол, который поддерживает следующее:
В зависимости от устройства имеется доступная реализация.
Браузер: он использует websockets. Websocket предоставляет браузеру возможность устанавливать полнодуплексную связь. Для реализации функций MQTT существует библиотека Javascript, см. Eclipse Paho JavaScript Client
Android: это клиентская библиотека MQTT, написанная на Java для разработки приложений на Android. Смотрите Служба Android Eclipse Paho
Таким образом, это зависит от устройства, которое будет использовать эту функциональность. Для стандартов и спецификаций, пожалуйста, посетите MQTT Version 3.1.1
Надеясь, что это поможет.
Приветствия!
MQTT над веб-сокетами также полезен, если приложение работает за брандмауэром, что позволяет использовать только 443 и 80 трафика. И вы не контролируете политики брандмауэра.
С MQTT через веб-сокеты каждый браузер может быть устройством MQTT.
Благодаря шаблону "публикация/подписка" MQTT вы получаете в реальном времени информацию в своем браузере, когда происходит событие - буквально в любой точке мира - при условии, что вы подписаны на правильную тему.
В случае MQTT через WebSockets соединение websockets образует внешний канал для протокола MQTT. Сервер/брокер помещает пакет MQTT в пакет веб-сокетов и отправляет его клиенту/серверу. Клиент/сервер распаковывает пакет MQTT из пакета websockets и затем обрабатывает его как обычный пакет MQTT.
Кроме того, это имеет большое влияние на интернет вещей. Пожалуйста, прочитайте следующую документацию для получения дополнительной информации.
MQTT Broker:
Партнером клиента MQTT является брокер MQTT. Брокер лежит в основе любого протокола публикации/подписки. В зависимости от реализации, брокер может обрабатывать до тысяч одновременно подключенных клиентов MQTT.
Клиент MQTT: Когда мы говорим о клиенте, мы почти всегда имеем в виду клиента MQTT. И издатели, и подписчики являются клиентами MQTT. Метки издателя и подписчика относятся к тому, публикует ли клиент в настоящее время сообщения или подписывается на сообщения (функциональность публикации и подписки также может быть реализована в одном и том же клиенте MQTT).
WebSocket: мы узнали в MQTT Essentials, что MQTT идеально подходит для устройств с ограниченными возможностями и ненадежных сетей. Это также идеально подходит для отправки сообщений с очень низкими издержками. Было бы неплохо отправлять и получать MQTT-сообщения прямо в браузере мобильного телефона или вообще. Это возможно с помощью MQTT через WebSockets.
Вы можете использовать сторонний протокол. Пахо, EMQTT, VerneMQ.
Добавляя ответы здесь,
Цель MQTT как протокола состоит в том, чтобы отвлечь нас от размышлений о веб-сокетах, о том, как сообщение маршрутизируется, проверка ошибок и т.д., И сосредоточиться только на том, что отправлять и кому.
Кроме того, на стороне клиента, как и на брокере, доступно много вариантов конфигурации, таких как регистрация, какие порты использовать, размеры соединений, сетевые предпочтения и т.д., Которые можно настроить и настроить в соответствии с вашим вариантом использования.