我是靠谱客的博主 虚幻路灯,最近开发中收集的这篇文章主要介绍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)}
}

固定报头标识

可变报头

 

连接标识

最后

以上就是虚幻路灯为你收集整理的MQTT报文解释的全部内容,希望文章能够帮你解决MQTT报文解释所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部