MQTT дозволяє відправляючим встановити рівень якості обслуговування (QoS), який надає певні гарантії того, чи буде отримано повідомлення (і чи дозволені копії). Ця стаття від HiveMQ висвітлює проблему пониження рівня , коли клієнт з нижчим рівнем QoS не отримає повідомлення з гарантіями, які вимагав відправник:
Як вже було сказано, потоки QoS між клієнтом, що видає та підписується, - це дві речі, а також QoS може бути різним. Це означає, що рівень QoS може відрізнятися від клієнта A, який публікує повідомлення, і від клієнта B, який отримує опубліковане повідомлення. Між відправником і брокером QoS визначається відправником. Коли брокер розсилає повідомлення всім абонентам, використовується QoS підписки від клієнта B.
Чи надає MQTT спосіб вказівки на те, що цей пониження є неприйнятним і що повідомлення повинно бути доставлене з використанням запитуваного QoS оригіналу відправника? Є єдиний варіант, щоб перед передачею повідомлення переконатися, що і відправник, і одержувач мають потрібне налаштування QoS ?