MQTT-发布与订阅的报文

科技资讯 投稿 6900 0 评论

MQTT-发布与订阅的报文

MQTT发布订阅流程
发布消息报文-Publish

客户端连接broker后就可以发布消息,发布消息需要用Publish报文

    Topic Name-必填

    • 字段含义:指定发布消息的主题,一条消息只能指定一个主题,如果要发送给多个主题需要指定多条消息

    • 字段类型:int
  • 字段含义:指定消息的服务质量等级,基础介绍中的QoS level 1、2、3
  • Payload-必填

      字段类型:binary(二进制
  • 字段含义:用于指定消息的实际内容,MQTT作为二进制协议,payload可以是任何格式的协议,json、二进制、密文等
    • 字段类型:bool
  • 字段含义:当前消息是否为保留消息
  • Packet ID

      唯一的标记一条消息,QOS为1或者2的时候固定出现
  • mqtt客户端内部实现,无需我们手动实现
    • 消息是否重发标识,QoS 1&2的时候固定出现
  • mqtt客户端内部实现,无需我们手动实现
  • 订阅主题报文-Subscribe

    订阅主题需要使用Subscribe报文,主要包含一个Packet ID 和Subscription List(订阅列表

      用来唯一标识Subscribe报文以及匹配服务端返回的SUBACK的 Packet ID,无需手动设置

    • 订阅列表可以包含多个订阅,每个订阅有一个topic filter和 qos组成,可以通过Subscribe报文一次性订阅多个主题,Subscribe中主题过滤器和Publish中topic不同,可以使用通配符匹配多个主题

    • 订阅逻辑

      Reason Codes

      0x00-订阅成功且最大QoS等级为0

      0x02-订阅成功且最大QoS等级为2

    取消订阅报文-Unsubscribe

    取消订阅报文与订阅报文类型,包含一个Packet ID 和一个期望取消的主题过滤器列表,想要取消的Topic filter 需要与实际订阅的 Topic filter完全的文本匹配

    Unsubscribe报文同样也有UNSUBACK报文进行响应,但是在MQTT 3.1.1没有Reason Codes原因码确认是否成功, 在MQTT 5.0里面进行补充,有对应Reason Codes

    编程笔记 » MQTT-发布与订阅的报文

    赞同 (29) or 分享 (0)
    游客 发表我的评论   换个身份
    取消评论

    表情
    (0)个小伙伴在吐槽