全部产品
Search
文档中心

阿里云物联网平台:遗嘱消息

更新时间:Dec 08, 2023

MQTT协议的遗嘱消息,用于在设备离线时向其他设备告知其已离线。如果设备异常断开且在一段时间内未重连,物联网平台会代为发送遗嘱消息。遗嘱消息在MQTT 3.1.1标准中已定义,阿里云物联网平台在MQTT 5.0接入时支持这个特性。本文为您介绍遗嘱消息的概念、交互过程及使用场景。

背景信息

遗嘱消息

设备建连时会携带遗嘱消息,如果设备异常断开连接并且遗嘱延时间隔(默认为0)内设备未重联,该遗嘱消息会由物联网平台代理发布给订阅者。image..png

  • 遗嘱消息内容:消息内容与设备正常发布消息内容基本相同,包括话题,载体,服务等级(Qos),保留标记(retain)、用户属性、消息过期等。

  • 异常断开的场景:

    • 网络故障或波动,设备在保持连接周期内未能通讯,连接被服务端关闭。

    • 设备意外掉电,服务端识别到网络断开。

    • 设备尝试进行不被允许的操作而被服务端关闭连接,例如订阅自身权限以外的主题等。

  • 删除遗嘱消息:

    • 设备正常断开连接后会被删除。

    • 设备异常断开后,物联网平台代理发布会被删除。

    • 遗嘱消息如有设置消息过期时间,消息过期后会被删除。

  • 遗嘱消息不支持更新。

说明
  • 会话过期不影响遗嘱消息,遗嘱消息的发布与会话无关。

  • 遗嘱消息支持消息过期,如果消息内容一段时间后失效例如温度控制,请结合消息过期特性一起使用。更多信息,请参见消息过期

  • 如果网络信息较弱或不稳定,建议设置遗嘱过期时间间隔WillDelayInterval,避免设备频繁上下线而导致遗嘱消息频繁被推送。

使用场景

设备异常分析

物联网设备接入物联网平台,当设备状态发生变化如设备上线、设备下线时,物联网平台会向业务服务器或规则引擎推送设备状态消息topic: /as/mqtt/status/${productKey}/${deviceName},该消息中只包含设备的连接状态信息。如果想获得更多数据用于设备异常分析,可以使用遗嘱消息,遗嘱消息可包含环境信息等设备的详细状态。image..png