【问题标题】:My messages are getting downgraded by MQTT-broker, so what?我的消息被 MQTT-broker 降级了,那又怎样?
【发布时间】:2015-01-10 21:45:33
【问题描述】:

据我了解,如果您将subscribed 与特定的QoS 联系到topic,则订阅者将只能看到MQTT 代理和QoS 提供的topic 下的消息级别等于或低于发布主题时指定的QoS

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

subscribedtopic = newsQoS = 0,这个topic 是用QoS = 2 发布的,当我连接到broker 时,我收到了发布的消息,但带有QoS = 0,并且第二次,我用QoS = 1发布了相同的主题,当我用QoS = 0订阅它时,我收到了消息,但用QoS = 0

所以,因为无论QoS 级别是什么,我都会收到消息,但是它的QoS“降级”了,那又如何呢?风险是什么? 谁能解释一下?!!

【问题讨论】:

  • 您使用的是哪个代理?但我认为你的理解是错误的,如果 QOS 不匹配,消息将不会被过滤。代理将始终尝试传递消息,QOS 仅控制代理尝试传递消息的难度。 IIRC 订阅者 QOS 占主导地位(假设消息到达代理)
  • 嗨,谢谢你的回答。我用蚊子

标签: android mqtt messagebroker broker android-open-accessory


【解决方案1】:

当您进行订阅时,您是在对代理说“我希望接收消息的最大 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

【讨论】:

  • 谢谢他的回答。表格很清楚,准确地显示了我在进行测试以了解 mqtt rotoco 及其规格时收到的内容。当我的消息被降级时有什么缺点吗?
  • 不是真的 - 您已经说过这是您感兴趣的订阅级别。如果较低的 qos 对您来说是个问题,您应该订阅更高的级别。
猜你喜欢
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2011-01-02
  • 1970-01-01
相关资源
最近更新 更多