设备接入 IoTDA
设备接入 IoTDA
- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用前必读
概述
MQTT是一种底层传输协议,一般用于网络通信,它提供有序有的、可靠的、双向字节流传输,支持设备到云端和云端到设备之间的消息传递,是基于发布/订阅模模式的“轻量级”通信协议。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
图1 MQTT

数据包组成
MQTT消息由固定报头(Fixed header)、可变报头(Variable header)和有效载荷(Payload)三部分组成。在MQTT规范中有说明,建议使用设备侧SDK进行接入。
其中固定报头(Fixed header)和可变报头(Variable header)格式的填写请参考MQTT标准规范。有效载荷(Payload)的格式由应用定义(须使用UTF-8编码格式),即设备和物联网平台之间的定义。
- 固定报头:每个 MQTT 控制报文都包含一个固定报头,用于决定控制报文类型、在PUBLISH中还用于决定最大服务质量(QoS),如:建链、订阅、发布。
- 可变报头:某些 MQTT 控制报文包含一个可变报头部分。它在固定报头和负载之间。可变报头的内容根据报文类型的不同而不同。包含可变报头的报文标识符(Packet Identifier),用于区分同一链路的不同数据包。
- 有效载荷:某些 MQTT 控制报文在报文的最后部分包含一个有效载荷,对于 PUBLISH 来说有效载荷就是应用消息(由用户自己定义)。
主要控制报文类型
常见MQTT消息类型主要有CONNECT、SUBSCRIBE、PUBLISH、PINGREQ。
- CONNECT:指客户端请求和服务端连接。有效载荷(Payload)的主要参数,参考设备连接鉴权填写。
- SUBSCRIBE:订阅包括主题筛选器(Topic Filter)和最大服务质量(QoS),一个会话可以进行多个订阅。向平台订阅可以参考:Topic定义。
- PUBLISH:是指从客户端向服务端或者服务端向客户端传输一个应用消息。
- 可变报头(Variable header)中的主要参数“Topic name”,指服务端或客户端的发布主题。详细请参考Topic定义。
- 有效载荷(Payload)中的主要参数为完整的数据上报和命令下发的消息内容,一般是一个JSON或字符串对象。
- PINGREQ:指客户端发给服务端的心跳请求。主要用于告知服务端客户端还活着、确认网络连接没有断开。约定的发送周期由协商的Keep Alive决定。
使用限制
- 上行Topic是指设备向平台发送请求,或上报数据,或回复响应。
- 下行Topic是指平台向设备下发指令,或回复响应。
- 设备与平台建立连接后,需要订阅下行Topic(华为云平台中具有隐式订阅功能,若通信质量为Qos0,平台的系统topic无需订阅。),否则无法收到平台下发的指令或回复的响应。应用侧接口的调用,需要设备侧的配合,例如应用侧下发命令,设备侧需要先订阅“平台命令下发”的下行Topic,否则设备无法收到平台命令,应用下发命令的接口也会报超时。
父主题: 设备侧MQTT/MQTTS接口参考