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がサポートするフック機構により、モジュール関数呼び出し、メッセージ送受信、イベント配信をインターセプトしてシステム機能を柔軟に修正・拡張できます。
ExHookページでは、現在追加されているフックの基本情報やステータスの確認、追加および設定が可能です。
ExHookの定義や開発ガイドラインはhooksを参照してください。

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

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

Registered hooksタブをクリックすると、現在ExHookによって実装されているフックの一覧と、それぞれのパラメータや実行メトリクスを確認できます。

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

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