|
MQTT通讯的遗嘱机制
一MQTT遗嘱机制: MQTT遗嘱消息(Last Willand Testament,LWT)是一种客户端在建立连接时预先定义的特殊消息,当客户端异常断开连接时,由MQTT代理(Broker)代为发布到指定主题。 产线设备可能因电力故障、网络中断或硬件问题突然离线,而遗嘱机制确保了这种异常情况能够被及时通知到整个系统。 遗嘱消息包含三个基本要素:预设的主题、具体的消息内容以及消息的服务质量等级。当客户端正常发送DISCONNECT报文断开连接时,代理会丢弃存储的遗嘱消息;
只有当客户端异常断开1.5倍的保活时间后,遗嘱消息才会被发布。
如果是因为Broker的关闭而造成的异常断开,则遗嘱消息会立马发布 二、遗嘱消息的设置位置(CONNECT 报文) 客户端在首次连接 Broker 时,会通过 CONNECT 报文指定遗嘱参数,例如:
当 Broker 检测到该客户端 非正常掉线时,会自动执行:
三、遗嘱消息的触发条件遗嘱消息 仅在客户端非正常断开 时才会发布。 四、遗嘱消息的工作流程(时序解析) 1️⃣ 客户端连接时:向 Broker 声明遗嘱消息参数; 2️⃣ 客户端上线正常通信; 3️⃣ 客户端异常掉线(未发送 DISCONNECT); 4️⃣ Broker 检测到 TCP 断开; 5️⃣ Broker 自动发布遗嘱消息到指定 Topic; 6️⃣ 所有订阅者收到“设备离线”通知。
|