1

据我了解,如果您subscribed使用topic特定QoS的 ,订阅者将只能看到代理topic提供的消息,其级别等于或低于发布主题时指定的级别。MQTTQoSQoS

换句话说,例如,将订阅topic = newsand with的客户QoS = 1,那么他将能够看到withpublished下的任何消息topic = newsQoS = 1 OR 0

subscribed到一个topic = newswith QoS = 0,这topic是用 发布的QoS = 2,当我连接到 时broker,我收到了 te 已发布的消息,但用它QoS = 0,第二次,我发布了相同的主题,但用QoS = 1,当我订阅它时QoS = 0,我收到了消息但与QoS = 0.

那么,无论QoS我收到的消息是什么级别,但是,它QoS“降级”了,那又是什么?风险是什么?谁能解释一下?!!

4

1 回答 1

2

当您进行订阅时,您对代理说“我希望接收消息的最大 QoS 是 X”。这意味着,如果消息以更高的 QoS 进入您订阅的主题,它将仅为您降级。其他客户端不受影响。希望下表为您解决这个问题。

Subscription QoS | Message QoS | Delivered QoS
=================|=============|==============
       0         |       0     |       0
       0         |       1     |       0
       0         |       2     |       0
                 |             |
       1         |       0     |       0
       1         |       1     |       1
       1         |       2     |       1
                 |             |
       2         |       0     |       0
       2         |       1     |       1
       2         |       2     |       2
于 2014-11-13T22:51:19.857 回答