Skip to content

MQTT Will Message ​

EMQXはMQTTのウィルメッセージ機能を実装しています。クライアントにウィルメッセージが設定されている場合、クライアントが意図せず切断されると、EMQXは関連するサブスクライバーにそのメッセージを送信し、サブスクライバーがクライアントの状態を把握・更新できるようにします。

EMQXでこのメッセージングサービスを試すために、クライアントツールを使用できます。本セクションでは、MQTTX Desktop と MQTTX CLI を使ってクライアントをシミュレートし、ウィルメッセージがどのようにパブリッシュされ受信されるかを紹介します。

前提条件

  • MQTTのWill Messageに関する知識
  • MQTTXを使った基本的なパブリッシュおよびサブスクライブ操作

MQTTX Desktopでウィルメッセージをパブリッシュする ​

  1. 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ボタンをクリックします。

    ウィルメッセージの設定
  2. Connectionsペインで**+** -> New Connectionをクリックし、新しいクライアント接続を作成します。接続のNameをSubscriber、Hostを127.0.0.1に設定し、他の設定はデフォルトのままにしてConnectをクリックします。

  3. SubscriberペインでNew Subscriptionをクリックします。Topicテキストボックスにofflineと入力し、他の設定はデフォルトのままにしてConfirmボタンをクリックします。

    ウィルメッセージのサブスクライブ
  4. ConnectionsペインでDemoという名前のクライアント接続を選択し、右クリックしてNew Windowを選択します。新しいウィンドウでConnectボタンをクリックします。

    新しいウィンドウを開く
  5. 新しいウィンドウを閉じて5秒待ちます。SubscriberクライアントはウィルメッセージI'm offlineを受信します。

    ウィルメッセージの受信

MQTTX CLIでウィルメッセージをパブリッシュする ​

  1. 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
  2. 別のクライアントでトピックt/1をサブスクライブし、ウィルメッセージを受信できるようにします。

    bash
    mqttx sub -t 't/1' -h 'localhost' -p 1883 -v
  3. ステップ1で指定したクライアントを切断すると、ステップ2で指定したクライアントがウィルメッセージを受信します。

    bash
    topic:  t/1
    payload:  A will message from MQTTX CLI