物联网通信支持 MQTT 协议 V3.1.1 版本,同时支持 QOS0 与 QOS1 的服务质量等级(不支持 QOS2)。使用 MQTT 持久性会话,可保存设备的订阅状态及设备未接收到的订阅消息。设备离线后再次上线时可恢复至之前的会话,并接收到离线时未接收到的订阅消息。
设备连接物联网通信时,可将 Connect 连接报文可变报头部分的 CleanSession 标志位设置为0。物联网通信会根据设备连接时的客户端标识符 ClientId 对设备的会话状态进行判断,若当前没有会话则将会创建一个新的持久性会话,若存在已有会话则基于已有的会话进程进行通讯。
设备端发送 Connect 报文之后,物联网通信将会返回 Connack 报文,报文在连接确认标志位 SessionPresent 中,表明物联网通信是否已包含设备连接时的客户端标识符所对应的会话状态。SessionPresent 为0表示未创建持续性会话,设备端需要重新建立会话状态。SessionPresent 为1表明已创建持续性会话。
说明:
- 物联网通信发送存储的 QOS1 消息时会按照500ms的间隔依次下发。
- 可持久性会话中只存储 QOS1 消息,存储消息单设备最多150条,最多存储24小时。
可通过以下两种方式关闭 MQTT 持久性会话。
说明:设备的断开连接包含设备发送 disconnect 消息和设备通信超时导致的断开连接。
本页内容是否解决了您的问题?