基于MQTT 3.1版本,标准MQTT发布遗嘱消息的几种情况。 如果想设置遗嘱消息,那么客户端请求和代理服务器链接之前,必须把遗嘱消息提前填写好,在请求连接时,把遗嘱消息发给代理服务器。 MQTT遗嘱消息,什么时候订阅者会收到代理服务器发布的遗嘱消息?以下四种情况: 服务端发生了I/O 错误或者网络失败; 客户端在定义的心跳时期失联; 客户端在发送下线包之前关闭网络连接; 服务端在收到下线包之前关闭网络连接。 遗嘱标志 Will Flag 位置: 连接标志的第2位。 遗嘱标志( Will Flag) 被设置为1, 表示如果连接请求被接受了, 遗嘱( Will Message) 消息必须被存储在服务端并且与这个网络连接关联。 之后网络连接关闭时, 服务端必须发布这个遗嘱消息, 除非服务端收到DISCONNECT报文时删除了这个遗嘱消息。 遗嘱消息发布的条件, 包括但不限于: 服务端检测到了一个I/O错误或者网络故障。 客户端在保持连接( Keep Alive) 的时间内未能通讯。 客户端没有先发送DISCONNECT报文直接关闭了网络连接。 由于协议错误服务端关闭了网络连接。 如果遗嘱.... MQTT 遗嘱消息(Will Message)发布 mqtt