订户上的MQTT更高的QoS

订户上的MQTT更高的QoS,mqtt,qos,Mqtt,Qos,如果我有一个发布者向我的MQTT代理发送QoS为1的消息(至少一次传递)和一个QoS为2的订阅者(恰好一次传递),订阅者是否仍然可以接收重复的消息 我担心的是,发布者可能会向代理发送重复的消息(因为QoS 1声明这是可能的),然后代理会将它们全部视为不同的消息,并将它们转发给订阅者。这就是MQTT代理的工作方式吗?或者他们是否足够聪明,能够意识到从发布者接收到的重复消息都是相同的,然后只将其中一条转发给订阅者。QoS级别在各个客户端和代理之间。订阅者还请求QoS级别,代理为订阅者授予订阅的最大Q

如果我有一个发布者向我的MQTT代理发送QoS为1的消息(至少一次传递)和一个QoS为2的订阅者(恰好一次传递),订阅者是否仍然可以接收重复的消息


我担心的是,发布者可能会向代理发送重复的消息(因为QoS 1声明这是可能的),然后代理会将它们全部视为不同的消息,并将它们转发给订阅者。这就是MQTT代理的工作方式吗?或者他们是否足够聪明,能够意识到从发布者接收到的重复消息都是相同的,然后只将其中一条转发给订阅者。

QoS级别在各个客户端和代理之间。订阅者还请求QoS级别,代理为订阅者授予订阅的最大QoS

v3.1.1的MQTT规范介绍了这些不同的QoS级别与您的示例的关系:

响应订阅发送的有效负载消息的QoS必须是原始发布消息的QoS和服务器授予的最大QoS中的最小值

订阅者在订阅主题时可能已被授予QoS 2的最大值。但原始发布服务器使用QoS 1。因此订户可以接收原始发布者发送的消息的副本