客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅

为了将应用消息转发给与那些订阅匹配的主题,服务端发送PUBLISH报文给客户端

SUBSCRIBE 报文也(为每个订阅)指定了最大的QoS等级,服务端根据这个发送应用消息给客户端。

固定报头

MQTT协议(五)>>> 【SUBSCRIBE】订阅主题

剩余长度字段

等于可变报头的长度(2字节)加上有效载荷的长度。

可变报头

可变报头包含报文标识符

例子设置报文标识符为10:
MQTT协议(五)>>> 【SUBSCRIBE】订阅主题

有效载荷

SUBSCRIBE 报文的有效载荷包含了一个主题过滤器列表,它们表示客户端想要订阅的主题

每一个过滤器后面跟着一个字节,这个字节被叫做 服务质量要求(Requested QoS)。它给出了服务端向客户端发送应用消息所允许的最大QoS 等级

SUBSCRIBE 报文的有效载荷必须包含至少一对主题过滤器 和 QoS等级字段组合

请求的最大服务质量等级字段编码为一个字节,它后面跟着UTF-8编码的主题名,那些主题过滤器 /和QoS等级组合是连续地打包。

SUBSCRIBE 报文有效载荷格式:
MQTT协议(五)>>> 【SUBSCRIBE】订阅主题
MQTT协议(五)>>> 【SUBSCRIBE】订阅主题
有效载荷示例:
MQTT协议(五)>>> 【SUBSCRIBE】订阅主题
MQTT协议(五)>>> 【SUBSCRIBE】订阅主题

响应

服务端收到客户端发送的一个SUBSCRIBE 报文时,必须使用SUBACK 报文响应。

SUBACK 报文必须和等待确认的SUBSCRIBE 报文有相同的报文标识符。

允许服务端在发送SUBACK报文之前就开始发送与订阅匹配的PUBLISH报文。

相关文章:

  • 2021-08-19
  • 2021-07-13
  • 2022-12-23
  • 2021-08-04
  • 2021-08-09
  • 2021-04-02
猜你喜欢
  • 2021-08-27
  • 2021-04-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-12
  • 2021-12-23
相关资源
相似解决方案