MQTTクライアントによるテスト
リアルタイムデバイスをEMQXに接続しIoTアプリケーションを開発する前に、クライアントツールを使ってEMQXのメッセージングサービスをテストすることは、安全かつ効率的です。
EMQXをローカルにデプロイする前でも、EMQが提供する無料のオンライン公開MQTTブローカーやMQTTクライアントツールを検証ツールとして活用し、MQTTメッセージングサービスやアプリケーション開発の迅速なテストが可能です。

本章では、一般的に使われるMQTT 5.0クライアントツールを紹介し、以下のメッセージングサービスをテストするための簡単なデモを示します。
- クライアント接続の確立
- トピックのサブスクライブ
- メッセージのパブリッシュ
- メッセージの受信と表示
MQTTX
MQTTXはEMQがオープンソースで提供する洗練されたクロスプラットフォーム対応のMQTT 5.0検証ツールです。以下の3種類のツールを含みます。
- MQTTX Client
- MQTTX CLI
- MQTT Web
MQTTX Desktop
MQTTX Desktopはクロスプラットフォーム対応のMQTTデスクトップクライアントツールです。使いやすいグラフィカルインターフェースを提供し、ユーザーが迅速にMQTT接続を作成し、MQTTメッセージのパブリッシュ/サブスクライブをテストできます。
テスト前にMQTTX Clientをダウンロードしてインストールしてください。
- ご利用のOSに応じて、アプリケーションストアまたはMQTTX公式サイトからインストールパッケージをダウンロードします。
- MQTTX Clientをインストールします。詳細はMQTTX - インストールを参照してください。
以下の手順でMQTTXデスクトップクライアントを使った簡単なテストを行います。
MQTTX Clientを起動し、New ConnectionをクリックしてMQTT接続を作成します。
メッセージをパブリッシュするクライアントとして新規接続を設定します。
Generalセクションでクライアントの一般情報を入力します。
- Name: 接続名を入力します。
- Client ID: デフォルトのままで構いません。クライアント接続の一意識別子で、更新ボタンをクリックすると自動生成されます。
- Host: 利用するプロトコルを選択します。
mqtt://
またはws://
を選択してください。SSL/TLS
認証接続を使う場合は、mqtts://
またはwss://
を選択します。ホストIPアドレスはデフォルトでbroker.emqx.io
に設定されており、公開ブローカーに接続します。自分のEMQXを使う場合は実際のIPに置き換えてください。 - Port: 選択したプロトコルに対応するポート番号を入力します。
- UsernameとPassword: ブローカーでユーザー認証が有効な場合は入力し、無効なら空欄のままにします。
- SSL/TLS:
SSL/TLS
認証接続を使う場合はトグルボタンで有効にします。
他の設定はデフォルトのままにし、右上のConnectボタンをクリックします。
接続成功後、テキストボックスにトピック名
test
を入力し、スクリーンショットのようにメッセージを作成します。送信ボタンをクリックすると、トピックtest
にメッセージが表示されます。Connectionsペインの**+** -> New Connectionをクリックし、メッセージを受信するクライアントとして新規接続を作成します。名前を
Subscriber
に設定し、他の一般接続設定はクライアントDemo
と同じにします。Connectionsペインでクライアント
Subscriber
を選択し、+ New Subscriptionをクリックします。- Topic: テキストボックスに
test
を入力します。 - QoS: デフォルト値のままにします。
- Color: サブスクリプションを識別する色を選択できます。
他のオプションは空欄のままにし、Confirmボタンをクリックします。
- Topic: テキストボックスに
Connectionsペインでクライアント
Demo
を選択し、トピックtest
に新しいメッセージをパブリッシュします。クライアントSubscriber
が新しいメッセージを受信していることが確認できます。
これでMQTTX Clientを使った基本的なパブリッシュとサブスクライブの操作を体験できました。詳細かつ高度な操作についてはMQTTX - パブリッシュとサブスクリプションを参照してください。
MQTTX CLI
MQTTX CLIはEMQが提供するオープンソースのMQTT 5.0コマンドラインツールです。グラフィカルインターフェースを必要とせず、コマンドライン上でMQTTサービスやアプリケーションのテスト・デバッグが可能です。
以下の手順でMQTTX CLIを使い、接続、パブリッシュ/サブスクライブ、メッセージ表示を行います。
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
コマンドラインツールで以下のコマンドを実行し、EMQXに接続して
testtopic/#
トピックをサブスクライブします。shellmqttx sub -t 'testtopic/#' -q 1 -h 'localhost' -p 1883 'public' -v
パラメータの説明:
-t
: サブスクライブするトピック-q
: メッセージのQoS(デフォルト: 0)-h
: リスナーのIPアドレス(デフォルト:localhost
)-p
: ブローカーのポート(デフォルト:1883
)-v
: メッセージの前にトピックを表示
実行成功後、コマンドラインは受信待機状態になり、メッセージ受信後に内容を表示します。
さらにパラメータの詳細はMQTTX CLI - サブスクライブを参照してください。
新しいコマンドラインウィンドウを開き、以下のコマンドを実行してEMQXに接続し、トピック
testtopic/#
にメッセージをパブリッシュします。bashmqttx 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のコマンドラインウィンドウには以下のメッセージが表示されます。
bashtopic: testtopic/1 payload: from MQTTX CLI
さらにパラメータの詳細はMQTTX CLI - パブリッシュを参照してください。
MQTTX Web
MQTTX WebはブラウザベースのMQTT 5.0 WebSocketクライアントツールです。ツールのダウンロードやインストール不要で、WebSocket経由のMQTT開発やデバッグを完結できます。MQTTX Webでのテスト操作はMQTTX Clientと基本的に同じです。

ダッシュボード WebSocket
EMQX DashboardはWebSocketクライアントを提供しており、手軽かつ効果的なMQTTテストツールとして利用できます。MQTT over WebSocketでEMQXへの接続、トピックのサブスクライブ、メッセージのパブリッシュをテスト可能です。
EMQX Dashboardの左ナビゲーションメニューでDiagnose -> WebSocket Clientをクリックします。
Connectionセクションに接続情報を入力します。
- Host: 対応するIPアドレスを入力します(デフォルト:
localhost
)。 - Port: デフォルトの
8083
のままにします。 - UsernameとPassword: もしあれば入力し、アクセス制御がなければ空欄のままにします。
他の設定はデフォルトのままにします。
- Host: 対応するIPアドレスを入力します(デフォルト:
Connectボタンをクリックして接続を確立します。
Subscriptionセクションでサブスクライブするトピックを
testtopic/#
に設定し、Subscribeボタンをクリックしてサブスクライブを完了します。トピックtesttopic/#
が下のテーブルに追加されます。サブスクライブ後、トピックにマッチするすべてのメッセージがこの接続に転送されます。
Publishセクションでパブリッシュするメッセージのトピックを設定します。
- Topic:
testtopic/1
に設定します(ワイルドカード+
や#
はサポートされません)。 - Payload:
{"msg": 'Hello"}
に設定します。 - QoS: デフォルト値の
0
に設定します。 - Retain: リテインメッセージに設定したい場合はチェックボックスを選択します。リテインメッセージの詳細はリテインメッセージを参照してください。
Publishボタンをクリックすると、Publishedセクションに1件のレコードが追加されます。メッセージはすべてのサブスクライバーにルーティングされます。このテストではパブリッシャーも受信者なので、Receivedセクションにも新しいレコードが追加されます。
- Topic: