MQTT QOS等级订阅和发布的关系

发布publish和订阅subscribe都可以指定qos等级。
pub时指定的qos是跟服务器有关系的,比如qos2时,是保证服务器只收到一次,而不是最终的订阅者。
订阅者在sub时虽然指定了qos,但是收到的消息不一定就是指定qos等级的消息,而可能是降级的了。
为响应订阅而发出的消息的有效载荷的QoS必须是原始发布消息的QoS和服务端授予的QoS两者中的最小值。
比如sub qos2,pub qos0,此时服务器转发的消息是qos0级别也就是sub可能收到一次消息也可能收不到。
再如sub qos0, pub qos2,此时服务器转发的消息也是qos0级别,sub也是可能只收到一次消息或者收不到。
也就是服务器只会按pub和sub两者qos等级最小的那个qos规则来发送消息。

pub时指定的qos是服务器肯定按此规则接收,但是最终订阅者不一定。
sub时指定的qos表示订阅者可以接收的最高消息等级,也就是可能收到更低等级的消息。

猜你喜欢

转载自blog.csdn.net/gamereborn/article/details/80211975