美文网首页
mqtt的Qos选值问题

mqtt的Qos选值问题

作者: 大风过岗 | 来源:发表于2020-08-18 14:30 被阅读0次

QOS的使用场景:

1、在发送消息时,指定QOS

2、在订阅主题时,指定QOS

这俩种场景下,QOS各自的作用是什么?

问题如下:

发送者A,发送到主题/sys/platform/device/ack的QOS为0
而接受者B,订阅主题/sys/platform/device/ack的QOS为2,
此时的服务质量是怎么表现的?

发送方表现的行为是什么?

broker表现的行为是什么 ?

接收方表现的行为是什么?

B的网络状况不好时,是否存在丢包的情况?

即:实际在进行消息转发时,采用的Qos是多少,起决于什么?

A 订阅 一个主题的Qos,服务端是怎么决定的?

broker根据什么条件决定授予客户端Qos的最大值?

比如: 订阅者请求的Qos是2,broker实际授予它的Qos能是几?

消息在实际转发给订阅者时,其Qos=Min(pub_qos,sub_granted_by_server) //取俩者之间的最小值
比如:
发送者的Qos是1,而订阅者被授予的Qos是0,那么,服务端broker在实际转发消息时,允许采用Qos为0进行消息发送。

第二个问题就是: 客户端在订阅时可以被授予的最大QOS值是多少?

比如:

 订阅者请求的Qos是2,那么服务端granted_qos=min(sub_req_qos,permitted_granted_qos)

订阅者的Qos所代表的含义:

服务端可以授予比订阅者要求的低一些的 QoS 等级。

The SUBSCRIBE packet also specifies (for each Subscription) the maximum QoS with which the Server
can send Application Messages to the Client.

This gives the maximum QoS level at which the Server can send Application Messages to the Client.

相关文章

网友评论

      本文标题:mqtt的Qos选值问题

      本文链接:https://www.haomeiwen.com/subject/mhxkjktx.html