MQTT Will Message
EMQXはMQTTのウィルメッセージ機能を実装しています。クライアントにウィルメッセージが設定されている場合、クライアントが意図せず切断されると、EMQXは関連するサブスクライバーにそのメッセージを送信し、サブスクライバーがクライアントの状態を把握・更新できるようにします。
EMQXでこのメッセージングサービスを試すために、クライアントツールを使用できます。本セクションでは、MQTTX Desktop と MQTTX CLI を使ってクライアントをシミュレートし、ウィルメッセージがどのようにパブリッシュされ受信されるかを紹介します。
前提条件
- MQTTのWill Messageに関する知識
- MQTTXを使った基本的なパブリッシュおよびサブスクライブ操作
MQTTX Desktopでウィルメッセージをパブリッシュする
EMQXとMQTTX Desktopを起動します。New Connectionをクリックして、パブリッシャーとしてクライアント接続を作成します。
- Name欄に
Demoと入力します。 - Hostにローカルホストの
127.0.0.1を入力します(このデモの例として使用)。 - 他の設定はデフォルトのままにして、Connectをクリックします。
TIP
MQTT接続の作成に関する詳細な手順はMQTTX Desktopで紹介しています。

ページをスクロールダウンし、Last Will and Testamentセクションでウィルメッセージの設定を入力します。
- Last-Will Topic:
offlineと入力します。 - Last-Will QoS:デフォルト値の
0に設定します。 - Last-Will Retain:デフォルトで無効のままにします。有効にするとウィルメッセージもリテインドメッセージになります。
- Last-Will Payload:
I'm offlineと入力します。 - Will Delay Intervals (s):
5秒に設定します。
他の設定はデフォルトのままにして、Connectボタンをクリックします。

- Name欄に
Connectionsペインで**+** -> New Connectionをクリックし、新しいクライアント接続を作成します。接続のNameを
Subscriber、Hostを127.0.0.1に設定し、他の設定はデフォルトのままにしてConnectをクリックします。SubscriberペインでNew Subscriptionをクリックします。Topicテキストボックスに
offlineと入力し、他の設定はデフォルトのままにしてConfirmボタンをクリックします。
Connectionsペインで
Demoという名前のクライアント接続を選択し、右クリックしてNew Windowを選択します。新しいウィンドウでConnectボタンをクリックします。
新しいウィンドウを閉じて5秒待ちます。
SubscriberクライアントはウィルメッセージI'm offlineを受信します。
MQTTX CLIでウィルメッセージをパブリッシュする
1つのクライアントで接続リクエストを開始します。トピックを
t/1、ペイロードを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