MQTT学习笔记(5)报文分析之SUBSCRIBE


SUBSCRIBE(订阅主题)


含义:客户端向服务器该报文用于订阅一个或者一类topic或者多类tpoic。
一.固定报头

  • 0x82
  • 剩余长度

二.可变报头

  • 报文标识符

三.payload

  • 主体过滤器(Tpoic Filter)
  • 服务质量要求(Qos)

注:payload可以是多个Tpoic Filter,但是每个Tpoic Filter后面要有一个Qos


SUBACK(订阅确认)


含义:服务区对客户端发来SUBSCRIBE报文的响应。

一.固定报头

  • 0x90
  • 剩余长度

二.可变报头

  • 报文标识符

三.payload

  • 和Tpoic Filter对应的实际Qos清单

UNSUBSCRIBE(取消订阅)


含义:客户端向服务器发送UNSUBSCRIBE,用于取消订阅主题

一.固定报头

  • 0xA2
  • 剩余长度

二.可变报头

  • 报文标识符

三.payload

  • 待取消的Topic

UNSUBACK(取消订阅确认)


含义:确认收到UNSUBSCRIBE报文
一.固定报头

  • 0xB0
  • 剩余长度

二.可变报头

  • 报文标识符

三.payload


Topic Filter(主题过滤器)


  • 大小写敏感
  • 可以使用任何UFT-8字符
  • 避免使用$符号开头
  • 通配符 + #(publish时不能使用通配符)

加号+:单层匹配
MQTT学习笔记(5)报文分析之SUBSCRIBE_第1张图片

井号#:多层匹配,多用于前方一致的匹配

MQTT学习笔记(5)报文分析之SUBSCRIBE_第2张图片

准确匹配一个topic:
MQTT学习笔记(5)报文分析之SUBSCRIBE_第3张图片

匹配所有topic:

MQTT学习笔记(5)报文分析之SUBSCRIBE_第4张图片

下面住抓下包
MQTT学习笔记(5)报文分析之SUBSCRIBE_第5张图片

82 12 
00 10 
00 0d 74 65 73 74 2f 73 61 6d 70 6c 65 2f 23 00

MQTT学习笔记(5)报文分析之SUBSCRIBE_第6张图片

MQTT学习笔记(5)报文分析之SUBSCRIBE_第7张图片

MQTT学习笔记(5)报文分析之SUBSCRIBE_第8张图片

你可能感兴趣的:(mqtt)