MQTT报文解释

 连接MQTT服务器

Client ID:mqtt-explorer-dbb6773f
协议:MQTT
username:abc
password:123
接收到的内容:,MQTT�<mqtt-explorer-dbb6773fabc123
转成base64:ECwABE1RVFQEwgA8ABZtcXR0LWV4cGxvcmVyLWRiYjY3NzNmAANhYmMAAzEyMw==

转成ascii码
array(46) {
  [0]=>int(16)0001 0000 固定报头
  [1]=>int(44)剩余长度44

  [2]=>int(0)0000 0000 可变报头长度MSB
  [3]=>int(4)0000 0100 可变报头长度LSB
  [4]=>int(77)M
  [5]=>int(81)Q
  [6]=>int(84)T
  [7]=>int(84)T

  [8]=>int(4)0000 0100 协议级别 4-3.1.1版本 5-5.0版本
  [9]=>int(194)11000010 连接标志

  [10]=>int(0)两个固定分割字符
  [11]=>int(60)

  [12]=>int(0)两字节长度标识
  [13]=>int(22)
  [14]=>int(109)m
  [15]=>int(113)q
  [16]=>int(116)t
  [17]=>int(116)t
  [18]=>int(45)-
  [19]=>int(101)e
  [20]=>int(120)x
  [21]=>int(112)p
  [22]=>int(108)l
  [23]=>int(111)o
  [24]=>int(114)r
  [25]=>int(101)e
  [26]=>int(114)r
  [27]=>int(45)-
  [28]=>int(100)d
  [29]=>int(98)b
  [30]=>int(98)b
  [31]=>int(54)6
  [32]=>int(55)7
  [33]=>int(55)7
  [34]=>int(51)3
  [35]=>int(102)f

  [36]=>int(0)两字节长度标识
  [37]=>int(3)
  [38]=>int(97)a
  [39]=>int(98)b
  [40]=>int(99)c

  [41]=>int(0)两字节长度标识
  [42]=>int(3)
  [43]=>int(49)1
  [44]=>int(50)2
  [45]=>int(51)3
}

 发送消息

Topic:/12345
消息内容:{"a": 123}
接收到数据:5/12345��{"a": 123}
因为有乱码,转base64结果是NRQABi8xMjM0NZ+keyJhIjogMTIzfQ==

解码base64将字符串转成ascii码结果
array(22) {
  [0]=>int(53)0011 0101 固定报头
  [1]=>int(20)剩余长度20

  [2]=>int(0)两个字节表明Topic长度
  [3]=>int(6)

  [4]=>int(47)/
  [5]=>int(49)1
  [6]=>int(50)2
  [7]=>int(51)3
  [8]=>int(52)4
  [9]=>int(53)5
  
  [10]=>int(159)这两是随机字符,分割用的
  [11]=>int(164)

  [12]=>int(123){
  [13]=>int(34)"
  [14]=>int(97)a
  [15]=>int(34)"
  [16]=>int(58):
  [17]=>int(32)
  [18]=>int(49)1
  [19]=>int(50)2
  [20]=>int(51)3
  [21]=>int(125)}
}

固定报头标识

可变报头

 

连接标识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值