MQTT协议控制报文类型,发布/订阅 QOS 代表的含义

MQTT 控制报文类型

名字报文流动方向描述
Reserved0禁止保留
CONNECT1客户端到服务端客户端请求连接服务端
CONNACK2服务端到客户端连接报文确认
PUBLISH3两个方向都允许发布消息
PUBACK4两个方向都允许QoS 1 消息发布收到确认
PUBREC5两个方向都允许发布收到(保证交付第一步)
PUBREL6两个方向都允许发布释放(保证交付第二步 )
PUBCOMP7两个方向都允许QoS 2 消息发布完成(保证交互第三步)
SUBSCRIBE8客户端到服务端客户端订阅请求
SUBACK9服务端到客户端订阅请求报文确认
UNSUBSCRIBE10客户端到服务端客户端取消订阅请求
UNSUBACK11服务端到客户端取消订阅报文确认
PINGREQ12客户端到服务端心跳请求
PINGRESP13服务端到客户端心跳响应
DISCONNECT14客户端到服务端客户端断开连接
Reserved15禁止保留

QoS:发布消息的服务质量,即:保证消息传递的次数

Ø00:最多一次,即:<=1

Ø01:至少一次,即:>=1

Ø10:一次,即:=1

Ø11:预留

发布和订阅都可以指定QoS级别,pub中指定的QoS与服务器相关。
例如,当使用qos2时,有必要确保服务器只接收一次,而不是最终的订阅用户。虽然用户在sub中指定了QoS,但是接收到的消息可能不是具有指定QoS级别的消息,而是可能被降级的消息。
响应订阅而发出的消息的有效负载的QoS必须是原始发布消息的QoS和服务器授予的QoS中的最小值。
例如,sub qos2和pub qos0,服务器转发的消息是qos0级别的,这意味着sub可能接收到消息,也可能无法接收到消息。
另一个例子是sub qos0和pub qos2。此时,服务器转发的消息也是qos0级别,sub可能只接收一次消息,也可能不接收。
也就是说,服务器将只根据最低QoS级别pub和sub的QoS规则发送消息。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值