O MQTT permite que os remetentes definam um nível de Qualidade de serviço (QoS), que fornece certas garantias sobre se uma mensagem será recebida (e se duplicatas são permitidas). Este artigo do HiveMQ destaca o problema da desatualização , em que um cliente com um nível de QoS mais baixo não receberá a mensagem com as garantias que o remetente solicitou:
Como já foi dito, os fluxos de QoS entre um cliente de publicação e assinatura são duas coisas diferentes, assim como a QoS. Isso significa que o nível de QoS pode ser diferente do cliente A, que publica uma mensagem, e do cliente B, que recebe a mensagem publicada. Entre o remetente e o intermediário, a QoS é definida pelo remetente. Quando o broker envia a mensagem a todos os assinantes, a QoS da assinatura do cliente B é usada.
O MQTT fornece uma maneira de indicar que esse downgrade não é aceitável e que a mensagem deve ser entregue usando a QoS solicitada pelo remetente original? É a única opção para garantir que o remetente e o destinatário tenham a configuração de QoS desejada antes de transmitir a mensagem?