Подтвердить что ты не робот

Прямой MQTT против MQTT через WebSocket

Каковы достоинства MQTT над WebSocket по сравнению с прямым MQTT?

Я рассматриваю использование MQTT в своем проекте, и поэтому хочу знать, почему некоторые люди выбирают MQTT поверх WebSocket вместо прямого MQTT.

4b9b3361

Ответ 1

Вам нужно только запускать MQTT через веб-сокеты, если вы собираетесь публиковать/подписываться на сообщения непосредственно из веб-приложений (на странице).

По сути, я запускаю чистый MQTT для всего и добавляю веб-сокеты, только если вам это действительно нужно.

Для всех языков без браузера клиентские библиотеки MQTT используют только собственный MQTT. Для Javascript есть как чистая библиотека MQTT, так и библиотека страниц Paho in, которая использует веб-сокеты.

Изменение: Вариант использования туннелирования брандмауэра является действительной причиной для использования MQTT над веб-сокетами, и после написания этого ответа, больше ни одна веб-клиент/клиентские библиотеки JavaScript не добавили поддержку

Ответ 2

MQTT через веб-сокеты идеально подходит, если когда-либо определенная веб-страница является отправляющим или получающим MQTT-клиентом.

Хорошее описание возможностей MQTT для веб-сокетов можно найти здесь.

Ответ 3

Две основные причины использования MQTT над Websockets (что фактически означает переходы по HTTP/HTTPS):

  • Веб-приложения (работающие в браузере - например, написанные на JavaScript)
  • Любые другие приложения, которые не хотят использовать порт 1883/8883 и хотят переходить через HTTP/HTTPS, - это может быть так, что вероятность блокирования брандмауэром меньше (например, в корпоративном сеть), так как большинство брандмауэров позволят HTTP-трафику через

Если вам не нужно или беспокоиться об этом, используйте "direct" MQTT:

  • он эффективнее
  • существует больше клиентских библиотек для разных языков, работающих с "прямым" MQTT

Ответ 4

MQTT - это протокол, который поддерживает следующее:

  • Предоставляет механизм публикации/подписания.
  • Политика качества обслуживания
  • Минимальные затраты на связь
  • Специально разработан для узкополосного канала связи и
    ограниченные устройства.

В зависимости от устройства имеется доступная реализация.

Браузер: он использует websockets. Websocket предоставляет браузеру возможность устанавливать полнодуплексную связь. Для реализации функций MQTT существует библиотека Javascript, см. Eclipse Paho JavaScript Client

Android: это клиентская библиотека MQTT, написанная на Java для разработки приложений на Android. Смотрите Служба Android Eclipse Paho

Таким образом, это зависит от устройства, которое будет использовать эту функциональность. Для стандартов и спецификаций, пожалуйста, посетите MQTT Version 3.1.1

Надеясь, что это поможет.

Приветствия!

Ответ 5

MQTT над веб-сокетами также полезен, если приложение работает за брандмауэром, что позволяет использовать только 443 и 80 трафика. И вы не контролируете политики брандмауэра.

Ответ 6

С MQTT через веб-сокеты каждый браузер может быть устройством MQTT.

Благодаря шаблону "публикация/подписка" MQTT вы получаете в реальном времени информацию в своем браузере, когда происходит событие - буквально в любой точке мира - при условии, что вы подписаны на правильную тему.

В случае MQTT через WebSockets соединение websockets образует внешний канал для протокола MQTT. Сервер/брокер помещает пакет MQTT в пакет веб-сокетов и отправляет его клиенту/серверу. Клиент/сервер распаковывает пакет MQTT из пакета websockets и затем обрабатывает его как обычный пакет MQTT.

enter image description here

Кроме того, это имеет большое влияние на интернет вещей. Пожалуйста, прочитайте следующую документацию для получения дополнительной информации.

Облачная платформа SAP Интернет вещей

AWS IoT

MQTT через веб-сокеты с HiveMQ

Ответ 7

MQTT Broker:

Партнером клиента MQTT является брокер MQTT. Брокер лежит в основе любого протокола публикации/подписки. В зависимости от реализации, брокер может обрабатывать до тысяч одновременно подключенных клиентов MQTT.

Клиент MQTT: Когда мы говорим о клиенте, мы почти всегда имеем в виду клиента MQTT. И издатели, и подписчики являются клиентами MQTT. Метки издателя и подписчика относятся к тому, публикует ли клиент в настоящее время сообщения или подписывается на сообщения (функциональность публикации и подписки также может быть реализована в одном и том же клиенте MQTT).

WebSocket: мы узнали в MQTT Essentials, что MQTT идеально подходит для устройств с ограниченными возможностями и ненадежных сетей. Это также идеально подходит для отправки сообщений с очень низкими издержками. Было бы неплохо отправлять и получать MQTT-сообщения прямо в браузере мобильного телефона или вообще. Это возможно с помощью MQTT через WebSockets.

Вы можете использовать сторонний протокол. Пахо, EMQTT, VerneMQ.

Ответ 8

Добавляя ответы здесь,

Цель MQTT как протокола состоит в том, чтобы отвлечь нас от размышлений о веб-сокетах, о том, как сообщение маршрутизируется, проверка ошибок и т.д., И сосредоточиться только на том, что отправлять и кому.

Кроме того, на стороне клиента, как и на брокере, доступно много вариантов конфигурации, таких как регистрация, какие порты использовать, размеры соединений, сетевые предпочтения и т.д., Которые можно настроить и настроить в соответствии с вашим вариантом использования.