MQTT позволяет отправителям устанавливать уровень качества обслуживания (QoS), который обеспечивает определенные гарантии относительно того, будет ли получено сообщение (и разрешены ли дубликаты). В этой статье HiveMQ освещается проблема понижения версии , когда клиент с более низким уровнем QoS не получит сообщение с гарантиями, которые отправитель запросил:
Как уже говорилось, потоки QoS между клиентом публикации и подпиской - это две разные вещи, а также QoS могут быть разными. Это означает, что уровень QoS может отличаться от клиента A, который публикует сообщение, и клиента B, который получает опубликованное сообщение. QoS между отправителем и брокером определяется отправителем. Когда брокер рассылает сообщение всем подписчикам, используется QoS подписки от клиента B.
Предоставляет ли MQTT способ указания того, что это понижение не приемлемо и что сообщение должно быть доставлено с использованием запрошенного QoS исходного отправителя? Является ли единственной возможностью убедиться, что отправитель и получатель имеют желаемую настройку QoS перед передачей сообщения?