:::info
:::
订阅消息允许客户端注册一个后或多个感兴趣的服务话题名称。服务器将发送到这些话题的消息作为PUBLISH消息发送给客户端。订阅消息指定订阅者希望接收的发布消息的QoS等级。
QoS等级
订阅消息使用QoS等级1来确认多个订阅请求。响应的SUBACK消息有同样的消息ID匹配识别。
DUP flag: 置0
RETAIN flag: 未使用
Remaining length field: 负荷数据长度,为可变长度
可变头
可变头包括一个消息ID,因为SUBSCRIBE消息服务等级为1
负荷数据(Payload)
负荷数据包括一个客户端希望接收的话题名称列表,以及客户端希望接收的消息QoS等级。
字符串为UTF-编码,QoS等级占一个字节两位。话题字符串可能包括特殊通配符代表一系列话题。话题/QoS对在下面负荷示例中连续显示如下:
假设改QoS等级已授权,客户端可接收到小于等于该等级的发布消息
发布这决定做大消息发布QoS等级,订阅者可根据其情况降低QoS等级。
3.9 订阅响应(SUBACK)
SUBACK消息有服务端发送给客户端,确认接收到SUBCRIBE消息。
SUBACK包括一组授权的QoS等级,授权的QoS等级顺序和订阅消息中的话题名称顺序一致。
固定头
剩余长度
剩余长度包括负荷数据,为可变字节。
可变头
可变头中的ID与被确认的订阅消息中的ID一致
负荷数据
负荷包括一组授权的QoS等级,每个对应响应的订阅消息中的话题名称。
授权等级以自己为准
3.10 取消订阅
UNSUBSCRIBE由客户端发送到服务端,取消响应的指定话题。
固定头
QoS LEVEL
取消订阅消息使用QoS等级1,确认多个取消请求。
UNSUBACK 消息对应有消息识别。
Remaining Length
负荷数据长度,可变字节
可变头
取消订阅QoS等级为1, 其可变头包括消息ID。
负荷数据
客户端取消负荷列表中的话题名称,字符串为UTF编码。后台名称不压缩
UNSUBACK (取消订阅响应)
UNSUBACK消息由服务端发送给客户端,确认接收到取消订阅消息
剩余长度:
2字节