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