Extensions
Extensions機能を利用すると、ゲートウェイを通じて非MQTTプロトコルの接続およびメッセージのパブリッシュ/受信が可能になり、プラグインやExHookを使ってシステムの修正や拡張ができます。Managementをクリックし、下にスクロールしてExtensionsセクションを表示すると、以下が確認できます。
- Gateways:すべての非MQTTプロトコルの接続、認証、メッセージ送受信を処理し、それらに対して統一されたユーザーレイヤーのインターフェースと概念を提供します。
- ExHook:他の言語を使ってEMQXのシステム機能を修正または拡張する機能を提供します。
- Plugins:Erlangで書かれたプラグインをインストールすることでシステム機能を修正または拡張します。
Gateways
EMQXのマルチプロトコルゲートウェイは、すべての非MQTTプロトコルの接続、認証、メッセージの送受信をサポートします。さまざまなプロトコルに対して統一された概念モデルを提供します。
ゲートウェイページでは、ゲートウェイを有効化し、リスナー設定などの基本設定を行うことができます。EMQXはカスタム設定オプションも提供しています。詳細な設定手順については、以下の一般的なゲートウェイのクイックスタートドキュメントを参照してください。
ゲートウェイを有効にする前に、適切にセットアップする必要があります。セットアップ後は、Gatewaysページで各有効化されたプロトコルゲートウェイの接続数を監視し、ゲートウェイの状態(有効/無効)を管理できます。

TIP
ゲートウェイを無効にすると、そのゲートウェイ配下のすべての接続が切断され、再接続が必要になります。ご注意ください。
Gateway Setup
Gatewaysページで有効化したいプロトコルゲートウェイを選択し、Action列のSetupボタンをクリックします。プロトコルゲートウェイの初期設定ページは以下の3ステップで構成されています。
- 基本設定の構成
- リスナーの構成
- 認証の構成
設定項目はプロトコルゲートウェイによって異なります。初期設定完了後は、Gateway Detailsページで設定項目を更新できます。

Dashboardで設定したゲートウェイはクラスター全体に反映されます。
基本設定
設定項目はプロトコルゲートウェイごとに異なります。詳細な設定方法は各ゲートウェイのドキュメントを参照してください。
リスナー
基本設定が完了したら、ゲートウェイのリスナー設定に進みます。ゲートウェイごとに複数のリスナーを有効化できます。以下の表は各プロトコルゲートウェイがサポートするリスナーの種類を示しています。
| TCP | UDP | SSL | DTLS | Websocket | Websocket over TLS | |
|---|---|---|---|---|---|---|
| STOMP | ✔︎ | ✔︎ | ||||
| CoAP | ✔︎ | ✔︎ | ||||
| MQTT-SN | ✔︎ | ✔︎ | ||||
| LwM2M | ✔︎ | ✔︎ | ||||
| OCPP | ✔︎ | ✔︎ | ||||
| JT/T 808 | ✔︎ | ✔︎ | ||||
| GB/T 32960 | ✔︎ | ✔︎ |
認証
リスナー設定後、必要に応じてプロトコルゲートウェイのアクセス認証を設定できます。認証機構を設定しない場合は、任意のクライアントが接続可能です。プロトコルゲートウェイごとに以下の認証タイプをサポートしています。
| HTTP Server | Built-in Database | MySQL | MongoDB | PostgreSQL | Redis | DTLS | JWT | Scram | LDAP | |
|---|---|---|---|---|---|---|---|---|---|---|
| STOMP | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ||
| CoAP | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ||
| MQTT-SN | ✔︎ | |||||||||
| LwM2M | ✔︎ | |||||||||
| OCPP | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ||
| GB/T 32960 | ✔︎ |
Gateway Details
プロトコルゲートウェイが有効化されると、Gatewaysページにリダイレクトされます。ここでゲートウェイの設定管理やカスタマイズが可能です。
- 設定のカスタマイズ:Actions列のSettingsボタンをクリックすると、ゲートウェイの基本設定、リスナー設定、認証設定を必要に応じて更新できます。
- 接続クライアントの表示:Actions列のClientsボタンをクリックすると、そのプロトコルゲートウェイ経由でサーバーに接続しているクライアント一覧が表示されます。クライアントID、ユーザー名、IPアドレス(Clientsページと同様)、状態、接続または登録時間が含まれます。クライアントを切断するには、Actions列のKick Outボタンをクリックしてください。
- クライアントの検索:クライアントID、ユーザー名、ノードでフィルターをかけて特定のクライアントを素早く検索できます。

ExHook
Hookは特定のイベントポイントでカスタムコードを実行できる一般的な拡張機構です。ExHookは他のプログラミング言語を使ってEMQXのシステム機能を修正または拡張する機能を提供します。EMQXでサポートされるHook機構により、モジュール関数呼び出し、メッセージ送受信、イベント配信をインターセプトして柔軟にシステム機能を修正・拡張できます。
ExHookページでは、現在追加されているHookの基本情報や状態を確認でき、追加や設定も行えます。
ExHookの定義や開発ガイドラインはhooksに記載されています。

ExHookの追加
ページ右上の**+ Add**ボタンをクリックしてExHook追加ページに移動します。追加するExHookの基本情報と接続パラメータを設定し、Createをクリックしてデータを送信します。作成に成功するとExHook一覧ページにリダイレクトされます。

詳細の表示
作成成功後、ExHook一覧ページのExHook名をクリックすると詳細ページにアクセスできます。詳細ページでは、登録済みHookの総数、成功実行数、失敗実行数、現在の実行率などのExHookメトリクスを確認できます。基本情報を編集し、Updateボタンで保存可能です。

Registered hooksタブをクリックすると、現在ExHookで実装されているHookの一覧と、それぞれのパラメータや実行メトリクスが表示されます。

Plugins
EMQXはプラグインを通じてカスタムビジネスロジックを拡張したり、プラグインのプロトコル拡張インターフェースを利用して他のプロトコル対応を実装したりできます。Pluginsページでは、開発済みプラグインパッケージのインストールや起動、メンテナンスや設定を行えます。詳細な使い方はPluginsを参照してください。
システムプラグインの管理は、左メニューのExtensions内のPluginsから行います。
プラグイン一覧
Pluginsページにはインストール済みプラグインの一覧が表示され、プラグイン名、バージョン、作者、稼働状況などの詳細が確認できます。ページ上部のフィルターで名前や稼働状況を指定して特定のプラグインを検索可能です。
プラグインのインストール
詳細な手順はInstall Plugins via Dashboardを参照してください。
パッケージのインストールに成功するとプラグイン一覧ページにリダイレクトされます。新規インストールされたプラグインはデフォルトで停止状態です。プラグインを有効化するには、該当プラグインの横にあるStartボタンをクリックしてください。
プラグインの実行順序管理
複数プラグインが存在する場合、実行順序は有効化した順番で決まります。実行順序は以下の方法で調整可能です。
- ページ上でプラグインをドラッグ&ドロップする
- Actions列のMoreメニュー内の並び替えオプションを使用する
変更した実行順序は次回ノード再起動時に反映されます。
プラグインのアンインストール
プラグインを削除するには、Actions列のMoreメニュー内のUninstallボタンをクリックしてください。

プラグイン詳細
プラグイン名をクリックすると詳細ページにアクセスできます。このページでは以下が確認できます。
- ドキュメント:左ペインにプラグインインストールパッケージ内の
README.mdファイルが表示されます。 - プラグイン情報:右ペインに
release.jsonファイルからのメタデータ(バージョン、作者、その他関連情報)が表示されます。
プラグインのドキュメントに開発者のウェブサイトリンクが含まれている場合は、右上のRead Moreをクリックしてアクセス可能です。
