5. MQTT消息类型详解(一)

MQTT协议定义了多种消息类型,每种消息类型都有特定的用途和功能。了解这些消息的具体结构和使用场景,对于开发和调试MQTT应用至关重要。本章将详细介绍每种消息类型的结构、功能和应用场景,并探讨它们之间的相互关系。


1 CONNECT消息

1.1 消息结构

CONNECT消息用于客户端与代理建立连接的请求,消息格式如下:

+-------------------------------+
|   消息类型(1字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   QoS等级(2字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   消息剩余长度(2字节)       |
+-------------------------------+
|   协议名称长度(2字节)       |
+-------------------------------+
|   协议名称(MQTT,字符串)    |
+-------------------------------+
|   协议版本(1字节)           |
+-------------------------------+
|   连接标志(1字节)           |
+-------------------------------+
|   保持会话时间(2字节)       |
+-------------------------------+
|   用户名长度(可选,2字节)    |
+-------------------------------+
|   用户名(可选,字符串)      |
+-------------------------------+
|   密码长度(可选,2字节)      |
+-------------------------------+
|   密码(可选,字符串)        |
+-------------------------------+
1.2 使用场景
  • 连接初始化:客户端发送此消息请求与代理建立连接。
  • 认证和安全性:可包含用户名和密码,用于客户端认证。
  • 会话保持:指定保持会话时间,控制客户端和代理之间的心跳间隔。
1.3 示例
消息类型:1
保留标志:0
QoS等级:0
消息剩余长度:12
协议名称长度:4
协议名称:MQTT
协议版本:4
连接标志:0b00000000(无用户名和密码)
保持会话时间:60秒
客户端ID长度:6
客户端ID:Client1

2 CONNACK消息

2.1 消息结构

CONNACK消息是代理对客户端CONNECT消息的响应,格式如下:

+-------------------------------+
|   消息类型(1字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   QoS等级(2字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   消息剩余长度(2字节)       |
+-------------------------------+
|   连接状态(1字节)           |
+-------------------------------+
2.2 使用场景
  • 连接确认:代理通过此消息确认客户端的连接请求。
  • 状态码指示:连接状态字段指示连接是否成功,例如0x00表示成功,0x01表示拒绝。
2.3 示例
消息类型:2
保留标志:0
QoS等级:0
消息剩余长度:2
连接状态:0x00(连接成功)

3 PUBLISH消息

3.1 消息结构

PUBLISH消息用于将消息发布到指定的主题,格式如下:

+-------------------------------+
|   消息类型(1字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   QoS等级(2字节)           |
+-------------------------------+
|   保留标志(1字节)           |
+-------------------------------+
|   消息剩余长度(2字节)       |
+-------------------------------+
|   主题名称长度(2字节)       |
+-------------------------------+
|   主题名称(字符串)         |
+-------------------------------+
|   消息ID(2字节,QoS1和2)    |
+-------------------------------+
|   消息内容(字符串或二进制)  |
+-------------------------------+
3.2 使用场景
  • 消息发布:客户端将消息发布到指定主题。
  • 数据传输:传输传感器数据、状态信息等。
3.3 示例
消息类型:3
保留标志:0
QoS等级:1
消息剩余长度:18
主题名称长度:4
主题名称:sensor
消息ID:1
消息内容:Temperature: 25.5°C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值