MQTT प्रेषकों को सेवा की गुणवत्ता (QoS) स्तर निर्धारित करने की अनुमति देता है, जो इस बारे में निश्चित गारंटी प्रदान करता है कि क्या संदेश प्राप्त होगा (और क्या डुप्लिकेट की अनुमति है)। HiveMQ के इस लेख में डाउनग्रेडिंग की समस्या पर प्रकाश डाला गया है , जहाँ कम QoS स्तर वाला ग्राहक उस संदेश को प्राप्त नहीं करेगा जिसकी गारंटी प्रेषक द्वारा मांगी गई है:
जैसा कि पहले ही कहा गया है, क्यूओएस एक प्रकाशन और ग्राहक की सदस्यता के बीच बहती है दो अलग-अलग चीजें हैं और साथ ही साथ क्यूओएस अलग-अलग हो सकते हैं। इसका मतलब है कि क्यूओएस स्तर क्लाइंट ए से अलग हो सकता है, जो एक संदेश प्रकाशित करता है, और क्लाइंट बी, जो प्रकाशित संदेश प्राप्त करता है। प्रेषक और दलाल के बीच QoS प्रेषक द्वारा परिभाषित किया गया है। जब ब्रोकर सभी ग्राहकों को संदेश भेजता है, तो क्लाइंट B से सदस्यता का QoS उपयोग किया जाता है।
क्या MQTT यह इंगित करने का एक तरीका प्रदान करता है कि यह डाउनग्रेड स्वीकार्य नहीं है, और यह संदेश मूल प्रेषक के अनुरोधित QoS का उपयोग करके वितरित किया जाना चाहिए? क्या यह सुनिश्चित करने का एकमात्र विकल्प है कि प्रेषक और रिसीवर दोनों के पास संदेश भेजने से पहले वांछित QoS सेटिंग है ?