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

本文详细解释了MQTT协议中发布与订阅时QoS等级的作用及交互方式。发布方设置的QoS确保服务器正确接收消息,而订阅方设定的QoS则表明其能接受的最高等级。实际消息传递中,有效载荷的QoS由发布QoS和服务端QoS共同决定,并取两者的最小值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发布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表示订阅者可以接收的最高消息等级,也就是可能收到更低等级的消息。

 

转自:https://blog.csdn.net/gamereborn/article/details/80211975

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值