MQTT 在用户上具有更高的 QoS

  • 本文关键字:QoS 用户 MQTT mqtt qos
  • 更新时间 :
  • 英文 :


如果我有一个发布者使用 QoS 1(至少一次传送(向我的 MQTT 代理发送消息,而一个使用 QoS 2 的订阅者发送消息(恰好一次传送(,订阅者是否仍有可能收到重复的消息?

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

QoS 级别位于单个客户端和代理之间。订阅者还请求 QoS 级别,代理向订阅者授予订阅的最大 QoS

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

为响应订阅而发送的有效负载消息的 QoS 必须是最初发布的消息的最小 QoS 和服务器授予的最大 QoS。

订阅

者在订阅主题时可能已获得最大 QoS 2。但原始发布者使用 QoS 1。因此,订阅者可能会收到原始发布者发送的消息的副本。

最新更新