2015-05-15 3 views
0

Я использую mqtt для реализации одной из систем оповещения по электронной почте. Я также планирую использовать его для уведомлений триггеров внутри webapp. Я смущен между тем, сохраняет ли MQTT данные на самой серверной стороне, когда мы бросаем URL-адрес MQTT с идентификатором издателя в формате JSON? Причина, по которой я спрашиваю об этом, заключается в том, что в моем случае MQTT хранит только последние данные, если я отправляю другой, а затем предыдущий исчезает. Я хочу знать, присутствует ли он на стороне MQTT с момента рождения (поскольку MQ означает очередь сообщений) & Я не использовал или не должен быть реализован на стороне сервера/потребителя?MQTT: Очередь сообщений на стороне сервера

ответ

5

В Интернете существует общая ошибка ... MQTT означает MQ Telemetry Transport, а не телеграфную передачу сообщений. Он был создан IBM (с Eurotech), и он был частью семейства продуктов MQ в IBM. У MQTT нет очереди. Брокер получает сообщение по теме и пересылает его всем подписчикам по этой теме. Есть два основных варианта на такое поведение:

  • Если издатель отправить сообщение с «сохранить» флаг активной, брокер магазин это сообщение (только это). Если клиент подписывается на эту тему, брокер немедленно отправляет это последнее сообщение о хранении. Это так называемое «последнее известное сообщение»
  • Если абонент подключается к брокеру с «чистым сеансом» до «ложного», брокер сохраняет все подписки и все сообщения только в том случае, если клиент находится в автономном режиме. Это похоже на очередь, но не очень очередь. Если «clean session» false, если клиент отправляется в автономный режим, но некоторые издатели отправляют сообщения по теме, они подписываются, брокер сохраняет эти сообщения. Когда клиент вернется в сеть, он получит все потерянные сообщения.

Paolo.

+3

Фактически MQTT теперь означает ... MQTT. – ralight

Смежные вопросы