Skip to content

MQTTクライアントによるテスト

リアルタイムデバイスをEMQXに接続しIoTアプリケーションを開発する前に、クライアントツールを使用してEMQXのメッセージングサービスをテストすることは、より安全かつ効率的です。

EMQXをローカルにデプロイする前でも、EMQが提供する無料のオンラインパブリックMQTTブローカーおよびMQTTクライアントツールを検証ツールとして活用し、MQTTメッセージングサービスやアプリケーション開発の迅速なテストが可能です。

パブリックブローカー

本セクションでは、一般的に使用されるMQTT 5.0クライアントツールを紹介し、以下のメッセージングサービスをテストするための簡単なデモを提供します。

  • クライアント接続の確立
  • トピックのサブスクライブ
  • メッセージのパブリッシュ
  • メッセージの受信および表示

MQTTX

MQTTXはEMQがオープンソースで提供する洗練されたクロスプラットフォームMQTT 5.0検証ツールです。以下の3種類のツールを含みます。

  • MQTTX クライアント
  • MQTTX CLI
  • MQTT Web

MQTTX デスクトップ

MQTTX デスクトップはクロスプラットフォーム対応のMQTTデスクトップクライアントツールです。使いやすいグラフィカルインターフェースを提供し、ユーザーは迅速にMQTT接続を作成し、MQTTメッセージのパブリッシュ/サブスクライブをテストできます。

テストを始める前に、MQTTXクライアントをダウンロードしてインストールしてください。

  1. ご利用のOSに応じて、アプリケーションストアまたはMQTTX公式サイトからインストールパッケージをダウンロードします。
  2. MQTTXクライアントをインストールします。詳細な手順はMQTTX - インストールをご参照ください。

以下の手順に従い、MQTTXデスクトップクライアントを使った簡単なテストを行います。

  1. MQTTXクライアントを起動し、New ConnectionをクリックしてMQTT接続を作成します。

  2. 新しい接続をメッセージをパブリッシュするクライアントとして設定します。

    Generalセクションでクライアントの基本情報を入力します。

    • Name: 接続のNameを入力します。
    • Client ID: デフォルトのままで構いません。クライアント接続の一意識別子であり、リフレッシュボタンをクリックすると自動生成されます。
    • Host: 使用するプロトコルを選択します。mqtt://またはws://を選択してください。SSL/TLS認証接続を使用する場合はmqtts://またはwss://を選択します。ホストIPアドレスはデフォルトでbroker.emqx.ioに設定されており、パブリックブローカーに接続します。自身のEMQXを使用する場合は実際のIPに置き換えてください。
    • Port: 選択したプロトコルに対応するポート番号を入力します。
    • UsernameおよびPassword: ブローカーでユーザー認証が有効な場合はユーザー名とパスワードを入力し、無効の場合は空欄のままにします。
    • SSL/TLS: SSL/TLS認証接続を使用する場合はトグルボタンをクリックして有効にします。

    その他の設定はデフォルトのままにし、右上のConnectボタンをクリックします。

    新規接続パラメータ入力
  3. 接続に成功したら、テキストボックスにトピック名testを入力し、スクリーンショットのようにメッセージを作成します。送信ボタンをクリックすると、testトピックにメッセージが表示されます。

    テストメッセージのパブリッシュ
  4. Connectionsペインの**+** -> New Connectionをクリックし、メッセージを受信するクライアントとして新しい接続を作成します。名前をSubscriberに設定し、他の一般的な接続設定はクライアントDemoと同じにします。

  5. ConnectionsペインでクライアントSubscriberを選択し、+ New Subscriptionをクリックします。

    Topic: テキストボックスにtestを入力します。

    QoS: デフォルト値のままにします。

    Color: サブスクリプションを識別する色を選択できます。

    その他のオプションは空欄のままにし、Confirmボタンをクリックします。

    テストトピックのサブスクライブ
  6. ConnectionsペインでクライアントDemoを選択し、トピックtestに新しいメッセージをパブリッシュします。クライアントSubscriberが新しいメッセージを受信するのが確認できます。

    メッセージの再受信

これでMQTTXクライアントを使った基本的なパブリッシュとサブスクライブの操作を試しました。詳細かつ高度な操作についてはMQTTX - パブリッシュとサブスクリプションをご参照ください。

MQTTX CLI

MQTTX CLIはEMQが提供するオープンソースのMQTT 5.0コマンドラインツールです。グラフィカルインターフェースを必要とせず、コマンドライン上でMQTTサービスやアプリケーションのテストやデバッグが可能です。

以下の手順に従い、MQTTX CLIを使って接続、パブリッシュ/サブスクライブ、メッセージの表示を行います。

  1. MQTT CLIをダウンロードしてインストールします。ここではmacOSを例に示します。その他のOSについてはMQTTX CLI - インストールをご参照ください。

    bash
    # Homebrew
    brew install emqx/mqttx/mqttx-cli
    # Intelチップ用
    curl -LO https://www.emqx.com/zh/downloads/MQTTX/v1.9.0/mqttx-cli-macos-x64
    sudo install ./mqttx-cli-macos-x64 /usr/local/bin/mqttx
    # Apple Silicon用
    curl -LO https://www.emqx.com/zh/downloads/MQTTX/v1.9.0/mqttx-cli-macos-arm64
    sudo install ./mqttx-cli-macos-arm64 /usr/local/bin/mqttx
  2. コマンドラインで以下のコマンドを実行し、EMQXに接続してtesttopic/#トピックをサブスクライブします。

    shell
    mqttx sub -t 'testtopic/#' -q 1 -h 'localhost' -p 1883 'public' -v

    パラメータの説明:

    • -t:サブスクライブするトピック
    • -q:メッセージのQoS(デフォルト:0)
    • -h:リスナーのIPアドレス(デフォルト:localhost
    • -p:ブローカーのポート(デフォルト:1883
    • -v:メッセージの前にトピックを表示

    実行成功後、コマンドラインは受信待機状態となり、メッセージ受信時に内容を表示します。

    その他のパラメータについてはMQTTX CLI - サブスクライブをご参照ください。

  3. 新しいコマンドラインウィンドウを開き、以下のコマンドを実行してEMQXに接続し、testtopic/#トピックにメッセージをパブリッシュします。

    bash
    mqttx pub -t 'testtopic/1' -q 1 -h 'localhost' -p 1883 -m 'from MQTTX CLI'

    パラメータ:

    • -t: パブリッシュ先のトピック
    • -q: メッセージのQoS(デフォルト: 0)
    • -h: リスナーのIPアドレス(デフォルト: localhost
    • -p: ブローカーのポート(デフォルト: 1883
    • -m: メッセージ本文

    実行に成功すると、コマンドラインは接続を確立し、メッセージをパブリッシュした後にブローカーから切断します。ステップ2のコマンドラインウィンドウには以下のメッセージが表示されます。

    bash
    topic:  testtopic/1
    payload:  from MQTTX CLI

    その他のパラメータについてはMQTTX CLI - パブリッシュをご参照ください。

MQTTX Web

MQTTX WebはブラウザベースのMQTT 5.0 WebSocketクライアントツールです。ツールのダウンロードやインストール不要で、WebSocket経由のMQTT開発やデバッグを完結できます。MQTTX Webを使ったテスト操作は基本的にMQTTXクライアントと同様です。

MQTTX Web

ダッシュボード WebSocket

EMQX ダッシュボードはWebSocketクライアントを提供しており、迅速かつ効果的なMQTTテストツールとして利用できます。このMQTT over WebSocketを使い、EMQXへの接続、トピックのサブスクライブ、メッセージのパブリッシュをテストできます。

  1. EMQXダッシュボードの左ナビゲーションメニューでDiagnose -> WebSocket Clientをクリックします。

  2. Connectionセクションで接続情報を入力します。

    • Host: 対応するIPアドレスを入力します(デフォルト: localhost)。
    • Port: デフォルトのポート8083を使用します。
    • UsernameおよびPassword: もし認証が設定されていれば入力し、アクセス制御がない場合は空欄のままにします。

    その他の設定はデフォルトのままにします。

  3. Connectボタンをクリックして接続を確立します。

  4. Subscriptionセクションでサブスクライブするトピックをtesttopic/#に設定し、Subscribeボタンをクリックしてサブスクリプションを完了します。トピックtesttopic/#が下のテーブルに追加されます。

    ダッシュボード WebSocket クライアント

    サブスクライブ後、該当トピックにマッチするすべてのメッセージがこの接続に転送されます。

  5. Publishセクションでパブリッシュするメッセージのトピックを設定します。

    • Topic: testtopic/1に設定します(ワイルドカード+#はサポートされません)。
    • Payload: {"msg": 'Hello"}に設定します。
    • QoS: デフォルト値の0に設定します。
    • Retain: メッセージを保持したい場合はチェックボックスを選択します。保持メッセージの詳細は保持メッセージをご参照ください。

    Publishボタンをクリックすると、Publishedセクションに1件のレコードが追加されます。メッセージはすべてのサブスクライバーにルーティングされます。このテストではパブリッシャーも受信者であるため、Receivedセクションにも新しいレコードが追加されます。

    ダッシュボード WebSocket クライアントでのメッセージ受信