首页/网络/工控与物联网速查/MQTT遗嘱消息与离线告警联动
物联网协议60 条

MQTT遗嘱消息与离线告警联动

遗嘱消息在连接被异常断开时由代理代发,需要建连时预先登记主题、载荷、QoS 与保留标志。它常与在线状态主题搭配用于离线告警,正常断开不会触发。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​‌​‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

异常断开时的代办

客户端在建连时可以把一条消息登记为遗嘱:当代理检测到连接异常中断,例如保活超时、网络断开或被服务端因协议错误断开时,代理代替客户端把这条消息发布出去。客户端主动正常断开不会触发遗嘱。这让平台在设备突然失联时仍能收到一条明确的离线通知。

登记要素

主题通常与设备状态主题同前缀,例如设备状态或离线事件主题
载荷建议包含设备标识、离线标记与登记时间
QoS与状态主题保持一致,避免等级不匹配导致弱化
保留标志置保留可让新订阅者立即看到离线状态,需与清理策略配套
5.0 遗嘱延迟可设定延迟发布,避免设备快速重连造成的状态抖动

触发与不触发

情形是否发布遗嘱说明
保活超时是代理在约 1.5 倍保活时间未收到报文后判定连接失效
网络中断是代理侧最终按保活超时判定
协议错误被断开是服务端主动断开且非正常断开流程时按遗嘱处理
客户端正常断开否主动发送断开报文时遗嘱不发布
设备断电是表现为保活超时,与网络中断无法区分

典型使用场景

  • 设备离线告警:平台靠遗嘱在几十秒内得到离线事件,而不依赖轮询
  • 监控画面状态刷新:在线状态主题配合保留消息,新订阅者立即看到当前状态
  • 运维工单触发:离线事件直接进入告警流水线,缩短响应时间
  • 灰度排查:临时调整遗嘱载荷增加诊断信息,定位批量掉线原因
5.0 的遗嘱延迟可以把因短暂网络抖动导致的离线发布推迟,减少状态在短短几秒内反复变化造成的告警噪声。
遗嘱无法区分设备断电、网络中断与心跳超时,全部表现为异常断开;判定严重程度时要结合最后一次数据上报时间一起看。

易错点

  • 只配遗嘱而不统一状态主题:平台收到离线事件却无法与其他数据关联
  • 遗嘱的 QoS 或保留设置与状态主题不一致:离线消息被弱化或长期残留在服务端
  • 设备网络不稳导致在线状态反复抖动:需要结合遗嘱延迟或去抖窗口处理
  • 遗嘱主题权限与设备账号不匹配:代理发布请求被拒,离线事件直接丢失

数据来源与参考

  • OASIS MQTT Version 3.1.1 规范(遗嘱消息章节)
  • OASIS MQTT Version 5.0 规范(遗嘱属性与延迟)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/mqtt-will-message-usage.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​‌‌‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​‌​‌​‌‌‌​​‌‌​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​