MQTT permite a los remitentes establecer un nivel de calidad de servicio (QoS), que proporciona ciertas garantías sobre si se recibirá un mensaje (y si se permiten duplicados). Este artículo de HiveMQ destaca el problema de la degradación , donde un cliente con un nivel de QoS más bajo no recibirá el mensaje con las garantías que el remitente solicitó:
Como ya se dijo, los flujos de QoS entre un cliente de publicación y suscripción son dos cosas diferentes, así como la QoS puede ser diferente. Eso significa que el nivel de QoS puede ser diferente del cliente A, que publica un mensaje, y el cliente B, que recibe el mensaje publicado. Entre el remitente y el intermediario, el remitente define la calidad del servicio. Cuando el agente envía el mensaje a todos los suscriptores, se utiliza la QoS de la suscripción del cliente B.
¿MQTT proporciona una manera de indicar que esta degradación no es aceptable y que el mensaje debe entregarse utilizando la QoS solicitada por el remitente original? ¿Es la única opción para asegurarse de que tanto el emisor como el receptor tengan la configuración de QoS deseada antes de transmitir el mensaje?