遗嘱消息
EMQX 实现了 MQTT 的遗嘱消息功能。如果为客户端设置了遗嘱消息,在客户端意外断开连接时,EMQX 将把遗嘱消息发送给相关的订阅者,以便订阅者可以得知并更新客户端状态。
您可以使用客户端工具在 EMQX 中尝试此消息服务。本节介绍了如何使用 MQTTX Desktop 和 MQTTX CLI 来模拟客户端尝试遗嘱消息的发布和接收。
使用 MQTTX Desktop 发布遗嘱消息
启动 EMQX 和 MQTTX Desktop。点击新建连接创建一个名为
Demo的客户端连接作为发布者。- 在名称栏中输入
Demo。 - 在本演示中,服务器地址使用本地主机
127.0.0.1作为示例。
TIP
MQTTX Desktop 中介绍了更多详细的连接创建信息。

将页面下拉,在 Last Will and Testament 部分,填写遗嘱消息的配置。
- 遗嘱消息主题:输入
offline。 - 遗嘱消息 QoS:保持默认值
0。 - 遗嘱消息保留标志:默认禁用。如果启用,遗嘱消息也将是一个保留消息。
- 遗嘱消息:输入
I'm offline。 - 遗嘱消息延迟时间:设置为
5秒。
其他设置保持默认。点击连接按钮。

- 在名称栏中输入
在连接窗格点击**+** -> 新建连接,新建一个客户端连接作为订阅者。将名称设置为
Subscriber,服务器地址为127.0.0.1,其他连接信息均保留默认值,点击连接。在 Subscriber 窗格中,点击添加订阅。在 Topic 文本框中输入
offline。其他设置保持默认,点击确定。
在连接窗格中选择客户端
Demo。右键点击并选择新建窗口。在新窗口中,点击连接。
关闭新窗口并等待 5 秒钟。客户端
Subscriber将接收到遗嘱消息I'm offline。
使用 MQTTX CLI 发布遗嘱消息
使用一个客户端发起连接请求。将主题设置为
t/1,payload 设置为A will message from MQTTX CLI:bash$ mqttx conn -h 'localhost' -p 1883 --will-topic 't/1' --will-message 'A will message from MQTTX CLI' Connected使用另一个客户端订阅主题
t/1,以接收遗嘱消息:bashmqttx sub -t 't/1' -h 'localhost' -p 1883 -v断开步骤 1 中指定的客户端连接,然后步骤 2 中指定的客户端将接收到遗嘱消息:
bashtopic: t/1 payload: A will message from MQTTX CLI