GB/T 32960 ゲートウェイ
EMQX GB/T 32960 ゲートウェイは、GB/T 32960 と MQTT プロトコル間のメッセージングプロトコル変換を行うブリッジであり、クライアントがこれらのプロトコルを用いて相互に通信できるようにします。この GB/T 32960 ゲートウェイは、クライアントとサーバーに対して軽量かつシンプルなメッセージングソリューションを提供し、多様なメッセージング環境でのメッセージ交換を可能にします。TCP および SSL タイプのリスナーをサポートしているため、GB/T 32960 ゲートウェイは柔軟かつ多用途なメッセージングシステム構築ツールです。
本ページでは、EMQX における GB/T 32960 ゲートウェイの設定および使用方法について紹介します。
GB/T 32960 ゲートウェイの有効化
EMQX 5.4 以降、GB/T 32960 ゲートウェイはダッシュボード、REST API、および設定ファイル base.hocon を通じて設定および有効化が可能です。
TIP
EMQX をクラスターで運用している場合、ダッシュボードや REST API で行った設定はクラスター全体に影響します。特定のノードのみ設定を変更したい場合は、base.hocon にて設定してください。
以下では、ダッシュボードおよび REST API を用いた GB/T 32960 ゲートウェイの有効化手順を説明します。
EMQX ダッシュボードの左ナビゲーションメニューで Management -> Gateways をクリックします。Gateways ページにはサポートされているすべてのゲートウェイが一覧表示されます。GB/T 32960 を探し、Actions 列の Setup をクリックすると、Initialize GB/T 32960 ページに遷移します。
設定を簡略化するため、EMQX は Gateways ページのすべての必須フィールドにデフォルト値を用意しています。大幅なカスタマイズが不要な場合、以下の3クリックで GB/T 32960 ゲートウェイを有効化できます。
- Basic Configuration タブで Next をクリックし、すべてのデフォルト設定を受け入れます。
- 続いて表示される Listeners タブでは、EMQX がポート
7325の TCP リスナーを事前設定しています。再度 Next をクリックして設定を確定します。 - 最後に Enable ボタンをクリックして GB/T 32960 ゲートウェイを有効化します。
ゲートウェイの有効化が完了すると、Gateways ページに戻り、GB/T 32960 ゲートウェイのステータスが Enabled と表示されていることを確認できます。

上記の設定は REST API でも行えます。
例:
curl -X 'PUT' 'http://127.0.0.1:18083/api/v5/gateway/gbt32960' \
-u <your-application-key>:<your-security-key> \
-H 'Content-Type: application/json' \
-d '{
"name": "gbt32960",
"enable": true,
"mountpoint": "gbt32960/${clientid}/",
"retry_interval": "8s",
"max_retry_times": 3,
"message_queue_len": 10,
"listeners": [
{
"type": "tcp",
"name": "default",
"bind": "7325",
"max_conn_rate": 1000,
"max_connections": 1024000
}
]
}'REST API の詳細については REST API を参照してください。
カスタマイズが必要な場合やリスナーの追加、認証ルールの追加を行いたい場合は、GB/T 32960 ゲートウェイのカスタマイズ をご覧ください。
GB/T 32960 クライアントとの連携
EMQX の GB/T 32960 ゲートウェイを有効化すると、GB/T 32960 プロトコルと MQTT の間の翻訳およびルーティングを行い、GB/T 32960 クライアントと MQTT を用いたシステム間の通信を可能にします。GB/T 32960 プロトコルと MQTT 仕様は大きく異なるため、GB/T 32960 コマンドを直接 MQTT メッセージにマッピングすることはできません。これを解決するために、両システム間の通信を可能にする特定の変換ルールを設けています。
- コマンドの MQTT への変換:GB/T 32960 クライアントから発行されるすべてのコマンドは MQTT メッセージに変換されます。このメッセージのトピックは
${mountpoint}/upstream/${command}形式で、ペイロードはコマンドの詳細を含む JSON 形式です。 - GB/T 32960 クライアントへのコマンド送信:ユーザーは
${mountpoint}/dnstreamトピックに JSON 形式のメッセージをパブリッシュすることで、GB/T 32960 クライアントにコマンドを送信できます。 - GB/T 32960 クライアントからのレスポンス処理:GB/T 32960 クライアントから受信したレスポンスは、トピック
${mountpoint}/upstream/responseの MQTT メッセージに変換されます。
GB/T 32960 コマンドが MQTT メッセージにどのように変換されるかの詳細は、GB/T 32960 データ交換フォーマット を参照してください。
GB/T 32960 ゲートウェイのカスタマイズ
デフォルト設定に加え、EMQX はさまざまな設定オプションを提供しており、特定のビジネス要件に合わせて柔軟に対応できます。本セクションでは、Gateways ページで利用可能な各種フィールドについて詳しく解説します。
基本設定
Gateways ページで GB/T 32960 を探し、Actions 列の Settings をクリックします。Settings パネルでは、許容する最大ヘッダー長やヘッダー長の制限、統計情報の有効化、ゲートウェイの MountPoint 文字列設定などが行えます。以下のスクリーンショット下の説明を参照してください。

MountPoint:パブリッシュやサブスクライブ時にすべてのトピックに接頭辞として付加される文字列を設定します。これにより異なるプロトコル間でのメッセージルーティングの分離を実現できます。例:
stomp/。Retry Interval:再送信の間隔(デフォルト:
8s)。Max Retry Times:最大再送回数(デフォルト:
3)。Message Queue Length:最大メッセージキュー長(デフォルト:
10)。Idle Timeout:GB/T 32960 フレームを待機する最大秒数。無通信状態が続くと接続を切断します。
Enable Statistics:ゲートウェイによる統計収集と報告を許可するかどうか。デフォルトは
true。設定値はtrueまたはfalse。注意:このトピック接頭辞はゲートウェイが管理するため、クライアントはパブリッシュやサブスクライブ時に明示的に付加する必要はありません。
リスナーの追加
ポート 7325 に名前が default の TCP リスナーが既に設定されており、プール内に最大16のアクセプターを持ち、最大1,024,000の同時接続をサポートしています。より詳細な設定やリスナーの編集、削除、新規追加は Listeners タブから行えます。
TIP
GB/T 32960 ゲートウェイは TCP および SSL タイプのリスナーのみをサポートしています。

Add Listener をクリックすると Add Listener ページが開き、以下の設定項目を入力できます。
基本設定
- Name:リスナーの一意識別子を設定します。
- Type:プロトコルタイプを選択します。GB/T 32960 では
tcpまたはsslを選択可能です。 - Bind:リスナーが接続を受け付けるポート番号を設定します。
- MountPoint(任意):パブリッシュやサブスクライブ時にすべてのトピックに接頭辞として付加される文字列を設定し、異なるプロトコル間でのメッセージルーティングの分離を実現します。
リスナー設定
- Acceptor:アクセプタープールのサイズを設定します。デフォルトは
16。 - Max Connections:リスナーが処理可能な最大同時接続数を設定します。デフォルトは
1024000。 - Max Connection Rate:リスナーが1秒あたりに受け入れ可能な新規接続の最大レートを設定します。デフォルトは
1000。 - Proxy Protocol:EMQX が ロードバランサー 配下にある場合、プロトコル V1/V2 を有効化します。
- Proxy Protocol Timeout:プロキシプロトコルパッケージを待機する最大秒数。無通信状態が続くと接続を切断します。デフォルトは
3s。
TCP 設定
- ActiveN:ソケットの
{active, N}オプションを設定します。これはソケットが能動的に処理可能な受信パケット数を意味します。詳細は Erlang ドキュメント - setopts/2 を参照してください。 - Buffer:受信および送信パケットを格納するバッファのサイズを KB 単位で設定します。
- TCP_NODELAY:
TCP_NODELAYフラグを有効にするかどうかを設定します。これはクライアントが前回のデータのアックを待たずに追加データを送信できるかを制御します。デフォルトはfalse。設定値はtrueまたはfalse。 - SO_REUSEADDR:ローカルでのポート番号の再利用を許可するかどうかを設定します。
- Send Timeout:送信タイムアウトの最大秒数。無通信状態が続くと接続を切断します。デフォルトは
15s。 - Send Timeout:送信タイムアウト時に接続を切断するかどうかを設定します。
SSL 設定(SSL リスナーのみ)
TLS Verify の有効化はトグルスイッチで設定可能です。ただし、その前に関連する TLS Cert、TLS Key、および CA Cert の情報をファイル内容の入力または Select File ボタンでアップロードして設定する必要があります。詳細は SSL/TLS 接続の有効化 を参照してください。
続けて以下の設定が可能です。
- SSL Versions:サポートする SSL バージョンを設定します。デフォルトは
tlsv1.3、tlsv1.2、tlsv1.1、tlsv1。 - Fail If No Peer Cert:クライアントが空の証明書を送信した場合に接続を拒否するかどうか。デフォルトは
false。設定値はtrueまたはfalse。 - Intermediate Certificate Depth:ピア証明書に続く有効な認証パスに含まれる自己発行でない中間証明書の最大数。デフォルトは
10。 - Key Password:プライベートキーがパスワード保護されている場合に使用するユーザーパスワード。
認証の設定
GB/T 32960 ゲートウェイは HTTP サーバー認証 のみをサポートしています。login コマンドの情報を利用し、vin コードを clientid としてクライアントの認証フィールドを生成します。
- クライアントID:
vinコード - ユーザー名:
vinコード
以下は REST API または設定ファイルを用いて GB/T 32960 ゲートウェイの HTTP 認証を作成する例です。