プロトコル拡張 - ユーザー定義TCPクライアントとサーバーの動作のトラフィックパイプライン
次の図は、プロトコル拡張の例を示しています。ユーザー定義の TCP クライアントとサーバー動作のトラフィックパイプライン
プロトコル拡張を使用してカスタムプロトコルを追加する
カスタムプロトコルの Command Line Interface(CLI; コマンドラインインターフェイス)コマンドは、キーワード「user」を使用して、基礎となる設定エンティティのユーザ定義の性質を示します。拡張コードの助けを借りて、新しいユーザプロトコルをシステムに追加し、ユーザ定義プロトコルのユーザ仮想サーバを追加することができます。ユーザー仮想サーバーは、パラメータを設定することによって順番に設定できます。仮想サーバパラメータの設定値は、拡張コードで使用できます。
次に、新しいプロトコルのサポートを追加するためのユーザフローの例を示します。この例では、MQTT プロトコルのサポートをシステムに追加します。MQTT は、マシン間の「モノのインターネット」接続プロトコルです。これは、軽量なパブリッシュ/サブスクライブメッセージングトランスポートです。リモートロケーションとの接続に便利なこのプロトコルは、クライアントおよびブローカツールを使用して、サブスクライバにメッセージをパブリッシュします。
-
MQTTプロトコル拡張実装ファイルをCitrix ADCシステムにインポートします。mqtt.luaのコードリストは以下の通りです。以下の例では、ウェブサーバー上でホストされている MQTT 拡張ファイルをインポートしています。
import extension http://10.217.24.48/extensions/mqtt.lua mqtt_code
-
拡張を使用して、新しいユーザ TCP ベースのプロトコルをシステムに追加します。
add user protocol MQTT -transport TCP -extension mqtt_code
-
ユーザロードバランシング vserver を追加し、それにバックエンドサービスをバインドします。
add service mqtt_svr1 10.217.24.48 USER_TCP 1501 add service mqtt_svr2 10.217.24.48 USER_TCP 1502 add lb vserver mqtt_lb USER_TCP –lbmethod USER_TOKEN bind lb vserver mqtt_lb mqtt_svr1 bind lb vserver mqtt_lb mqtt_svr2 <!--NeedCopy-->
-
新しく追加されたプロトコルのユーザー vserver を追加します。defaultlb を、上記で設定した LB 仮想サーバに設定します。
add user vserver mqtt_vs MQTT 10.217.24.28 8765 -defaultLb mqtt_lb
-
オプションで、ClientID に基づいて MQTT セッションパーシステンスを有効にし、パーシステンスタイプを USERSESSION に設定します。
set lb vserver mqtt_lb -persistenceType USERSESSION