# mulesoft Websockets Connector - Full Documentation # CloudHub の WebSockets Connector インバウンド WebSockets エンドポイント、アウトバウンド WebSockets エンドポイント、またはその両方が含まれる Mule アプリケーションを CloudHub にデプロイできます。 アプリケーションにインバウンド WebSockets エンドポイントのみが含まれる場合、アプリケーションを CloudHub にデプロイするには、次の手順を実行する必要があります。 1. Anypoint Virtual Private Cloud (VPC) を設定します。 2. 専用ロードバランサーをセットアップして、WS および WSS トラフィックを Mule アプリケーションを介してルーティングします。 インバウンド WebSocket エンドポイントをセットアップする手順は、次のとおりです。 1. 次のいずれかのポートでリスンするように WebSockets インバウンドリスナー (​``​) を設定します。 - `0.0.0.0`​。 - WS 経由で通信するには、リスナーポートを ​`8091`​ に設定します。 - WSS 経由で通信するには、リスナーポートを ​`8092`​ に設定します。 2. VPC にアプリケーションをデプロイします。 3. 専用ロードバランサーの URL マッピングルールをセットアップして、URI を特定のアプリケーションに関連付けます。 たとえば、アプリケーション名が「my-websockets-mule-app」である場合、次のようにルールを定義できます。 - Input Path (入力パス): `/my-websockets-mule-app/` - Target App (対象アプリケーション): `my-websockets-mule-app` - Output Path (出力パス): `/` - Protocol (プロトコル): `ws` このルールでは、実行されたすべての要求が専用ロードバランサーの URL に、指定した入力パスが Mule アプリケーションのルートパス ​`/`​ にルーティングされます。ロードバランサーの名前によって、割り当てられる URL が決まるため、この例では、ロードバランサーに ​`mylb`​ という名前を付けた場合、​`ws://mylb.lb.anypointdns.net:80/my-websockets-mule-app/`​ を参照して、WebSockets リスナーに接続する必要があります。 専用ロードバランサーは、ポート 80 に発行されたすべての要求をアプリケーションのポート 8091 (すべての WS 接続用のポート) に転送します。ただし、WSS を使用している場合、ポート 443 に要求を発行すると、これらの要求は Mule アプリケーションのポート 8092 に転送されます。
CloudHub 2.0 デプロイメントでは、WebSockets をサポートする Mule アプリケーションが CloudHub 2.0 にデプロイされる他の Mule アプリケーションと同じ方法でデプロイされます。詳細は、Deploying Apps to CloudHub 2.0を参照してください。
## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [VPC ネットワークアーキテクチャ](https://docs.mulesoft.com/cloudhub/vpc-architecture-concept) - [専用ロードバランサーアーキテクチャ](https://docs.mulesoft.com/cloudhub/lb-architecture) - [専用ロードバランサーのマッピングルール](https://docs.mulesoft.com/cloudhub/lb-mapping-rules) # WebSockets Connector WebSockets Connector バージョン 1.0 WebSockets 用 Anypoint Connector (WebSockets Connector) には、次のインテグレーション機能があります。 - サーバーとクライアント間で双方向全二重通信を確立する - サーバーのプッシュ通知を実装する - 既存の HTTP インフラストラクチャ上でシームレスに機能する - クライアントが定期的にサーバーの新しいデータをポーリングしないで済む WebSocket は、クライアントとサーバー間の双方向 TCP 接続で、アプリケーションで接続を終了するまで開いたままになっています。WebSocket の場合、アプリケーションは HTTP を使用して初期接続を行います。その後、接続がソケットベースの TCP 接続にアップグレードされます。 リリースノート: [WebSockets Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/websockets-connector-release-notes-mule-4)​ Exchange: [WebSockets Connector](https://www.mulesoft.com/exchange/com.mulesoft.connectors/mule-websockets-connector/) ## [](#全二重の利点)全二重の利点 従来の HTTP では、接続は半二重 (一方向) で、要求-応答メッセージエクスチェンジパターンを使用することで機能します。 1. クライアントはサーバーに接続して要求を送信します。 2. サーバーは要求を処理して応答を返します。クライアントが応答を受信すると接続が終了します。 従来の HTTP 接続では、クライアントアプリケーションがサーバーから応答を受信するまでブロックされるため、膨大なオーバーヘッドが必要になります。また、この接続種別では、クライアントが常に要求を開始する必要があります。そのため、サーバーは複数のアプリケーションに同時に通知をプッシュできません。 クライアントが WebSockets を使用してサーバーに接続すると、永続接続が確立され、開いたままになります。クライアントとサーバーの両方で複数のメッセージを相互に送信でき、HTTP 要求-応答メッセージエクスチェンジパターンに従う必要はありません。 WebSocket は、既存の HTTP インフラストラクチャ上に構築されるため、従来の HTTP のためにすでに用意されているインフラストラクチャを簡単に再利用できます。 [IETF ドキュメントの「RFC 6455 - the WebSocket protocol (RFC 6455 - WebSocket プロトコル)」](https://tools.ietf.org/html/rfc6455)​を参照してください。 ## [](#websockets-connector-の一般的なユースケース)WebSockets Connector の一般的なユースケース WebSockets Connector は、HTTP 要求-応答メッセージエクスチェンジパターンによって引き起こされるオーバーヘッドを回避する必要のあるリアルタイムアプリケーションで役立ちます。 WebSockets Connector の一般的なユースケースとして、チャットアプリケーションや株価情報アプリケーションなどが挙げられます。 ### [](#チャットアプリケーション)チャットアプリケーション チャットアプリケーションでは、サブスクライブしている参加者はクライアントがチャットグループにメッセージを送信した直後にそのメッセージを受信したいと考えています。アプリケーションが HTTP を使用する場合、クライアントは定期的にサーバーの使用可能なメッセージをポーリングする必要があるため、パフォーマンスが低下します。WebSockets を使用すると、サーバーは使用可能なメッセージをすべてのサブスクライブしているユーザーにプッシュできます。 ### [](#株価情報アプリケーション)株価情報アプリケーション クライアントは、一連の株式の更新価格を継続的に送信する株価情報サービスに対して WebSocket を開いておくことができます。このような価格は絶え間なく変化するため、同じ接続を再利用して不定期にメッセージを受信できる WebSockets は、この問題の最適なソリューションになります。この場合、クライアントは接続の確立後にサーバーにメッセージを送信しません。 ## [](#互換性)互換性 WebSockets Connector は、以下と互換性があります。

App/Service

Version (バージョン)

Mule

4.2.2 以上

Java

1.8.0_x

Anypoint Studio

7.4 以上

## [](#始める前に)始める前に アプリケーションを作成する前に、WebSockets の対象リソースおよび Anypoint Platform へのアクセス権を持っている必要があります。Anypoint Studio を使用して Mule アプリケーションを作成する方法を理解しておく必要があります。 ## [](#websockets-の基本概念)WebSockets の基本概念 WebSockets Connector のしくみを理解するには、次の概念が不可欠です。 - [Socket Type (ソケット種別)](#socket_types) - [Socket ID (ソケット ID)](#socket_id) - [Groups (グループ)](#groups) - [Triggers (トリガー)](#triggers) - [操作](#operations) ### [](#socket_types)ソケット種別 WebSockets には次の 2 種類があります。 - Inbound (インバウンド) Mule アプリケーションが受信接続をリスンするときに作成される WebSocket。 このシナリオでは、外部システムが Mule アプリケーションによって公開されたエンドポイントに接続します。 - Outbound Mule アプリケーションが外部システムに接続したときに作成される WebSocket。 このシナリオでは、Mule アプリケーションが通信を開始し、WebSocket を確立するように外部システムに依頼します。 ### [](#socket_id)ソケット ID すべての WebSockets (インバウンドとアウトバウンドの両方) に、それらを識別する一意のソケット ID があります。アプリケーションは、それらの ID を参照して、個々の WebSockets を操作する必要があります。 ### [](#groups)Groups (グループ) WebSockets Connector には、グループ (個々の WebSockets が必要に応じてサブスクライブできる文字列識別子) の概念が導入されています。アプリケーションは、グループを使用して 1 つメッセージをさまざまな WebSockets のグループにブロードキャストできます。グループを使用すると、各ブロードキャストに参加すべき WebSockets を識別するためのプロセスが促進されます。 サブスクリプションは、WebSockets Connector 設定の各インスタンスのコンテキストにのみ存在します。そのため、Mule アプリケーションとリモートシステム間で WebSockets を確立した場合、グループに接続するための Mule 側の WebSockets にサブスクライブしても、リモートシステム側の WebSockets には影響しません。 ## [](#triggers)トリガー トリガーにより、メッセージやイベント通知の受信時にフローの実行が開始されます。WebSockets 関連のイベントで次のトリガーを指定できます。 - On New Inbound Message 外部システムが接続でき、メッセージの受信時に含まれているフローを開始するエンドポイントを公開します。 - On New Inbound Connection インバウンドリスナーへの新しい接続が確立されたときにフローを開始します。 - On New Outbound Message アウトバウンド WebSockets が外部システムからメッセージを受信したときにフローを開始するエンドポイントを公開します。 - On Socket Closed インバウンドまたはアウトバウンド WebSockets の終了時に含まれているフローを開始します。 ## [](#operations)操作 WebSockets 用 Anypoint Connector (WebSockets Connector) は次の操作をサポートしています。 - Open Outbound Socket 外部システムに接続し、アウトバウンド webSocket を作成します。 - 送信 WebSocket 経由でメッセージを送信します。 - Subscribe Groups 1 つ以上のグループに WebSocket をサブスクライブします。アプリケーションは、同じ WebSocket でこの操作を複数回呼び出します。各呼び出しは前の呼び出しに追加されていきます。反復するグループは無視されます。 - Unsubscribe Groups 1 つ以上のグループから WebSocket をサブスクライブ解除します。この操作は、同じソケットで複数回呼び出すことができます。各呼び出しは前の呼び出しに追加されていきます。反復するグループは無視されます。 - ブロードキャスト パス、種別、グループで分類された複数の WebSockets にメッセージを送信します。 - Close Socket WebSocket の接続を終了します。 - Bulk Close Socket 複数の WebSocket の接続を終了します。 ## [](#security)セキュリティ WebSockets Connector では、TLS で次の URI スキームを使用してクライアントおよびサーバーエンドポイントを保護できます。 - WS は、暗号化を使用せずに WebSocket サーバーおよびリソース名を識別します (例: `ws://localhost:80`​)。 - WSS は、TLS で保護して WebSocket サーバーおよびリソース名を識別します (例: `wss://localhost:433`​)。 ## [](#websockets-connector-と-runtime-fabric)WebSockets Connector と Runtime Fabric WebSockets Connector を使用する Mule アプリケーションを開発して Mule を Runtime Fabric にデプロイする場合、Runtime Fabric で WebSockets Connector を有効にするために必要な追加の設定はありません。 ## [](#関連情報)関連情報 - [WebSockets Connector の設定](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # WebSockets Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/websocket http://www.mulesoft.org/schema/mule/websocket/current/mule-websocket.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml com.mulesoft.connectors mule-websockets-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`websockets`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # WebSockets Connector のトラブルシューティング WebSockets 用 Anypoint Connector (WebSockets Connector) のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと WebSockets Connector のやりとりが失敗する理由の理解を深めるには、コネクタの冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - WEBSOCKET:CONNECTIVITY 接続が有効ではなくなりました。アプリケーションの設定で定義されている場合、再接続ポリシーを適用してください。 - WEBSOCKET:RETRY\_EXHAUSTED 操作の最大再試行回数に達しました。 - WEBSOCKET:NO\_SUCH\_SOCKET The WebSocket cannot be referenced because the WebSocket ID does not exist. (WebSocket ID が存在しないため、WebSocket を参照できません。) - WEBSOCKET:BASIC\_AUTHENTICATION The HTTP ​\*Request\*​ operation lacks basic authentication to send requests to the service, or the provided credentials are incorrect. (HTTP の Request 操作でサービスに要求を送信するための基本認証がないか、指定されたログイン情報が正しくありません。) - WEBSOCKET:FORBIDDEN クライアントにコンテンツへのアクセス権がないため、サーバーが要求されたリソースの提供を拒否しています。 - WEBSOCKET:INTERNAL\_SERVER\_ERROR The server encountered a problem that prevented it from fulfilling the request. (サーバーで要求を満たせない問題が発生しました。) - WEBSOCKET:INVALID\_SOCKET\_ID The WebSocket ID is null or blank. (WebSocket ID が null か空白です。) - WEBSOCKET:NON\_UNIQUE\_SOCKET\_ID An error occurred while registering the WebSocket because the ID already exists. (ID がすでに存在するため、WebSocket の登録中にエラーが発生しました。) - WEBSOCKET:NOT\_FOUND The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。) - WEBSOCKET:REMOTELY\_CLOSED The remote host closed the connection, which could be related to an SSL/TLS handshake issue. (リモートホストによって接続が閉じられました。SSL/TLS ハンドシェイクの問題に関連する可能性があります。)Check protocols, cipher suites, and certificate setup. (プロトコル、暗号化スイート、証明書セットアップを確認してください。)Use -Djavax.net.debug=ssl for further debugging. (さらにデバッグするには、-Djavax.net.debug=ssl を使用してください。) - WEBSOCKET:SERVICE\_UNAVAILABLE サーバーはメンテナンスまたは過負荷のためにダウンしているため、要求を管理できません。 - WEBSOCKET:UNAUTHORIZED The authentication failed or has not yet been provided to get the requested response. (要求された応答を取得するための認証に失敗したか、認証がまだ提供されていません。) ## [](#関連情報)関連情報 - [WebSockets Connector リファレンス](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # WebSockets Connector の例 次の Mule アプリケーションの例では、WebSockets 用 Anypoint Connector (WebSockets Connector) を使用して、株価情報を取得してブロードキャストするインテグレーションシステムを構築できます。 ## [](#quote-producer-app)Quote Producer App 次の Mule アプリケーションは、継続的でランダムな株価情報を生成します。 ![Anypoint Studio キャンバスの Quote Producer App フロー](/mulesoft/current/ja-jp/websockets-connector/latest/_images/websocket-example-1.png) 1. 株価情報の例: { "ticker": "CRM", "price": 157.6, "cur": "USD", "timestamp": 1563374475104 } - `Quote`​ 種別で前述の株価情報の例を識別します。 - Mule アプリケーションは、少なくとも 5 つの異なるティッカー (CRM、MELI、GOOG、NFLX、AAPL) を使用するランダムな株価を使用して約 50 件の見積を生成します。 - また、1 つの接続のみを受け入れる TLS セキュア ​`wss://localhost:60000/feed`​ エンドポイントを公開します。 - 最初のクライアントはエンドポイントに正常に接続する必要があります。 - エンドポイントに接続する以降のクライアントには、「​`"Sorry, spot taken"`​ (申し訳ありません。スポットは取得済みです)」というテキストが含まれる WSS メッセージが送信されます。 - 生成された各見積もりが接続されたフィードクライアントに送信されます。 対応するキーストアを生成する手順は、次のとおりです。 1. ターミナルを開きます。 2. ターミナルで、Studio のプロジェクトアプリケーションの ​`src/main/resources`​ フォルダーに移動します。 3. 次のコマンドを実行します。 `keytool -genkey -v -keystore producer-keystore.jks -alias producerkey -keyalg RSA -keysize 2048 -validity 10000` ## [](#quote-producer-app-の-xml)Quote Producer App の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#quote-aggregator-app)Quote Aggregator App 次の Mule アプリケーションは、前の Quote Producer App のフィードエンドポイントに接続し、すべての見積を受信します。次の、Quote Producer App はティッカー別に見積を分割し、5 秒ごとに実行される時間ベースのアグリゲーターに配置します。 ![Anypoint Studio キャンバスの Quote Aggregator App フロー](/mulesoft/current/ja-jp/websockets-connector/latest/_images/websocket-example-2.png) 集計が実行されると、アグリゲーターは縮小される ​`Array`​ を単一の ​`QuoteSnapshot`​ 種別に出力します。 QuoteSnapshot 種別の例 ```json { "ticker": "CRM" "price": "157.54 USD" } ``` - 縮小は、タイムスタンプが最大の ​`Quote`​ を選択して変換することで実行されます。 - 生成されたスナップショットはサブスクライバーの動的リストにブロードキャストされます。 - サブスクリプションは、Quote Aggregator App が公開する ​`wss://localhost:8082/quotes`​ エンドポイントを通じて実行されます。 - クライアントはどの株価情報に従うかを示すクエリパラメーターを使用して前のエンドポイントに接続できます (例: `wss://localhost:8082/quotes?ticker=CRM&ticker=MELI`​)。 対応するキーストアとトラストストアを生成する手順は、次のとおりです。 1. ターミナルを開きます。 2. ターミナルで、Studio のプロジェクトアプリケーションの ​`src/main/resources`​ フォルダーに移動します。 3. キーストアの次のコマンドを実行します。 `keytool -genkey -v -keystore broadcast-keystore.jks -alias broadcast -keyalg RSA -keysize 2048 -validity 10000` 4. 次のコマンドを実行してトラストストアを生成します。 `keytool -genkey -v -keystore aggregator-truststore.jks -alias broadcast -keyalg RSA -keysize 2048 -validity 10000` 要求によって、​`CRM`​ および ​`MELI`​ ティッカーのスナップショットを取得する WebSocket が確立されます。これは、生成されたソケットを適切なソケットグループにサブスクライブすることで実行されます。 Quote Aggregator App を Quote Producer App に接続するには、次のコマンドを使用して、アウトバウンドソケットを開くフローをトリガーします。 \+ `curl -k [http://localhost:8081/connect](http://localhost:8081/connect)` ## [](#quote-aggregator-app-の-xml)Quote Aggregator App の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#quote-client-app)Quote Client App 次の Mule アプリケーションによって少なくとも 3 つの異なる WebSockets が Quote Aggregator App の見積エンドポイントに開かれます。こうした各ソケットは異なるセットのティッカーをリスンします。 ![Anypoint Studio キャンバスの Quote Client App フロー](/mulesoft/current/ja-jp/websockets-connector/latest/_images/websocket-example-3.png) Figure 1. Quote Client App フロー 受信された ​`QuoteSnapshots`​ は CSV 形式に変換され、ファイルに付加されます。 対応するキーストアを生成する手順は、次のとおりです。 1. ターミナルを開きます。 2. ターミナルで、Studio のプロジェクトアプリケーションの ​`src/main/resources`​ フォルダーに移動します。 3. 次のコマンドを実行します。 `keytool -genkey -v -keystore client-truststore.jks -alias client -keyalg RSA -keysize 2048 -validity 10000` Quote Client App を Quote Aggregator App に接続するには、次のコマンドを使用して、アウトバウンドソケットを開くフローをトリガーします。 `curl -k [http://localhost:62000/open-aggregator-ws\?ticker\=CRM](http://localhost:62000/open-aggregator-ws\?ticker\=CRM)` ## [](#quote-client-app-の-xml)Quote Client App の XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSocket Connector の設定](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics) - [WebSocket Connector サーバーコンポーネント](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-server-components) - [WebSocket Connector メッセージング操作](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-messaging-operations) # WebSockets Connector の設定 アプリケーションで WebSockets インバウンドエンドポイントを公開する場合、​``​ 要素を使用してそれをセットアップする必要があります。 WebSockets 接続は HTTP 要求で開始されるため、WebSockets インバウンドエンドポイントを公開するには、基盤となる HTTP リスナー設定を参照する必要があります。これにより、HTTP リスナーの使用可能なすべての機能および設定 (ホスト、ポート、TLS など) を再利用できるようになるだけでなく、アプリケーションで同じポートを使用して WebSockets エンドポイントと通常の HTTP エンドポイントの両方を公開できるようになります。 HTTP リスナー設定を使用して、ホスト、ポート、ベースパスなどのベース接続設定を指定したり、TLS ベースの接続 (WSS) を設定したりできます。 ```xml ``` WebSockets サーバー設定では、​`listenerConfig`​ 属性の HTTP リスナー設定を参照します。この例では、WebSockets インバウンドリスナーは、HTTP リスナー設定で設定された ​`localhost`​ およびポート 80 で受信メッセージをリスンします。また、basePath を ​`/ws`​ に設定して、WebSockets 設定の HTTP basePath 設定を上書きします。要約すると、WebSockets インバウンドリスナーは、​`ws://localhost:80/ws/chat`​ で受信メッセージをリスンします。 HTTP リスナーには、TLS 設定コンポーネントへの参照がないため、デフォルトでは WS プロトコルを使用して接続が開きます。 ## [](#サーバータイムアウトの設定)サーバータイムアウトの設定 WebSockets 接続は、永続的でステートフルです。そのため、アイドル状態の接続が自動的に終了するようにタイムアウトを設定することをお勧めします。 次の例は、​``​ を使用して 1 時間のアイドルソケットタイムアウトを設定する方法を示しています。 ```xml ``` デフォルトでは、すべてのインバウンドソケットに 15 分のアイドルタイムアウトが設定されています。 ## [](#websockets-クライアントの設定)WebSockets クライアントの設定 アプリケーションが外部 WebSockets サービスに接続する必要がある場合、クライアント設定要素を指定します。 ```xml ``` この例では、config-ref 属性の WebSockets クライアント設定 (wsClient) を参照するアウトバウンドソケットを初期化しています。この場合、HTTP 設定を参照する必要はありません。 上記の設定では、WS 要求 URI を構築するために ​`host`​、​`port`​、​`basePath`​ が指定されています。​`host`​ パラメーターは省略可能です。設定しない場合は、​`localhost`​ に設定されます。 `port`​ パラメーターは省略可能です。指定しない場合は、プロトコルスキームに従ってデフォルト値が設定されます。WS が使用される場合、デフォルト値は ​`80`​ に設定されます。WSS が使用される場合、デフォルト値は ​`443`​ に設定されます。 `basePath`​ パラメーターは省略可能です。URI が設定されていない場合は、指定したホストおよびポートに相対的なすべてのクライアント要求のベースパスを示します。​`basePath`​ パラメーターが設定されていない場合、デフォルト値は ​`/`​ に設定されます。 また、URL を指定することもできます。 ```xml ``` ただし、その場合、​`URL`​ パラメーターと ​`path`​ パラメーターは相互に排他的であるため、パスを指定することはできません。これは、パスがホスト、ポート、ベースパスに相対的なパスを示すのに対して、URL はフルリソースロケーターを示すためです。 ## [](#デフォルトパラメーターおよびヘッダー)デフォルトパラメーターおよびヘッダー クライアント設定で、接続要求メッセージに含めるデフォルトヘッダーとデフォルトクエリパラメーターを指定できます。 ```xml ``` ヘッダーまたはクエリパラメーターを connect 操作に追加することもできます。これらは、接続を確立するために要求のデフォルトヘッダーおよびパラメーターと共に送信されます。 ```xml ``` ## [](#クライアントタイムアウトの設定)クライアントタイムアウトの設定 インバウンド接続と同様に、アイドル状態のアウトバウンド接続が自動的に終了するようにタイムアウトを設定することをお勧めします。 次の例は、​``​ を使用して 1 時間のアイドルソケットタイムアウトを設定する方法を示しています。 ```xml ``` デフォルトでは、アウトバウンドソケットにアイドルタイムアウトは設定されていません。ただし、接続先のリモートサービスには設定されていることが多いです。 ### [](#結合された設定)結合された設定 アプリケーションで受信接続のリスンと外部サービスへの要求の発行の両方を行う場合、サーバーとクライアントを一緒に設定できます。 ```xml ``` この設定は、インバウンドソケットとアウトバウンドソケットの両方から参照できます。 ```xml ``` ### [](#tls-設定)TLS 設定 TLS (トランスポート層セキュリティ) を使用すると、クライアントアプリケーションとサーバーアプリケーションは安全なチャネルを介して通信でき、攻撃者による送信データの傍受や改ざんを防ぐことができます。 WebSockets サーバーの場合、参照される HTTP リスナー設定から TLS 設定が継承されます。たとえば、WebSockets リスナーで TLS を設定するには、TLS が設定された ​``​ を参照します。 まず、トラストストア (アプリケーションが外部サービスと接続する場合) またはキーストア (アプリケーションが受信接続をリスンする場合)、あるいはその両方をセットアップする必要があります。 次の例では、WebSockets サーバーが HTTP リスナーから TLS 設定を継承し、​``​ を参照してキーストアを設定します。 ```xml ``` WebSocket クライアントの場合、​`tlsConfig`​ プロパティで ​``​ を直接参照してトラストストアをセットアップできます。 ```xml ``` `protocol`​ パラメーターは省略可能で、デフォルトは WS (安全ではない) です。​`WSS`​ に設定すると、接続で SSL が有効になります。​``​ が指定されている場合、SSL セッションの作成にその設定が使用されます。それ以外の場合、デフォルト設定が使用されます。 ## [](#次のステップ)次のステップ これで設定が完了したので、WebSockets ​[例](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [CloudHub](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-cloudhub) - [XML と Maven](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-xml-maven) # WebSockets Connector リファレンス サポートされるバージョン: [Select](https://www.mulesoft.com/legal/versioning-back-support-policy#anypoint-connectors) WebSockets Connector バージョン 1.0 WebSockets 用 Anypoint Connector (WebSockets Connector) は WebSockets プロトコルによる通信を提供して、外部システムがサーバーへの接続を開いたり (インバウンドソケット)、外部システムへの接続を確立したり (アウトバウンドソケット) できるようにします。どちらの場合も、全二重トラフィックがサポートされます。 リリースノート: [WebSockets Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/websockets-connector-release-notes-mule-4) ## [](#設定)設定 * * * ### [](#Config)デフォルト設定 デフォルト設定の名前および接続種別を設定します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Name (名前)

String (文字列)

他のコンポーネント内のこの要素を参照するために使用するこの要素の識別子。

x

#### [](#接続種別)接続種別 ##### [](#Config_Connection)Connection (接続) 接続のサーバー、クライアント、および再接続パラメーターを設定します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Server Settings (サーバー設定)

Client Settings (クライアント設定)

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作 WebSockets 用 Anypoint Connector (WebSockets Connector) は次の操作をサポートしています。 - [Broadcast (ブロードキャスト)](#Broadcast) - [Bulk Close Sockets](#BulkCloseSockets) - [Close Socket](#CloseSocket) - [Open Outbound Socket](#OpenOutboundSocket) - [Send (送信)](#Send) ### [](#関連付けられたソース)関連付けられたソース - [On New Inbound Message](#InboundListener) - [On New Inbound Connection](#OnInboundConnection) - [On Socket Closed](#OnSocketClosed) - [On New Outbound Message](#OutboundListener) ## [](#Broadcast)Broadcast (ブロードキャスト) `` パス、socketType、グループ条件に一致するすべてのアクティブな WebSockets にコンテンツを送信します。パスの場合、インバウンドとアウトバウンドソケットの両方を対象にできるため、設定済みのベースパスは考慮されません。 一部のソケットへの配信に失敗する可能性があったとしても、メッセージは一致するすべてのソケットに送信されます。この操作は、各失敗の詳細が含まれる ​`BroadcastFailure`​ のリストを返します。いずれも失敗しなかった場合は、空のリストが返されます。 ### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

送信するコンテンツ。

#[payload]

Path (パス)

String (文字列)

一致するソケットのパス。

x

Socket Type (ソケット種別)

Enumeration (列挙)。次のいずれかになります。

  • INBOUND

  • OUTBOUND

  • ALL (すべて)

一致するソケットの種別。

ALL

Groups (グループ)

Array of String (文字列の配列)

これらのグループのいずれかに属すソケットに一致する。

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力)出力

型

ブロードキャストの失敗​ の配列

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#Config) ### [](#スロー)スロー - WEBSOCKET:CONNECTIVITY - WEBSOCKET:RETRY\_EXHAUSTED ## [](#BulkCloseSockets)Bulk Close Sockets `` ### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Socket Type (ソケット種別)

Enumeration (列挙)。次のいずれかになります。

  • INBOUND

  • OUTBOUND

  • ALL (すべて)

ALL (すべて)

Groups (グループ)

Array of String (文字列の配列)

Close Code (クローズコード)

Enumeration (列挙)。次のいずれかになります。

  • NORMAL_CLOSURE​

  • ENDPOINT_GOING_DOWN​

  • PROTOCOL_ERROR​

  • INVALID_DATA​

  • MESSAGE_TOO_LARGE

NORMAL_CLOSURE

理由

String (文字列)

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#Config) ### [](#スロー-2)スロー - WEBSOCKET:CONNECTIVITY - WEBSOCKET:RETRY\_EXHAUSTED ## [](#CloseSocket)Close Socket `` この操作でソケットが閉じられる。 ### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Socket Id

String (文字列)

閉じるソケットの ID。

x

Close Code (クローズコード)

Enumeration (列挙)。次のいずれかになります。

  • NORMAL_CLOSURE​

  • ENDPOINT_GOING_DOWN​

  • PROTOCOL_ERROR​

  • INVALID_DATA​

  • MESSAGE_TOO_LARGE

クローズコード。

NORMAL_CLOSURE

理由

String (文字列)

閉じる理由を示す語句。

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#Config) ### [](#スロー-3)スロー - WEBSOCKET:CONNECTIVITY - WEBSOCKET:NO\_SUCH\_SOCKET - WEBSOCKET:RETRY\_EXHAUSTED ## [](#OpenOutboundSocket)Open Outbound Socket `` この操作で新しいアウトバウンドソケットが開かれる。 ### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Socket Id

String (文字列)

Default Groups (デフォルトグループ)

Array of String (文字列の配列)

ソケットが最初にサブスクライブするグループ。

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Path (パス)

String (文字列)

要求の送信先となるパス。

URL

String (文字列)

要求の送信先となる URL。

Headers (ヘッダー)

Object (オブジェクト)

メッセージに含まれる必要がある HTTP ヘッダー。

URI パラメーター

Object (オブジェクト)

要求の作成に使用する URI パラメーター。

クエリパラメーター

Object (オブジェクト)

要求に含まれる必要があるクエリパラメーター。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力-2)出力

型

String (文字列)

Attributes Type (属性型)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#Config) ### [](#スロー-4)スロー - WEBSOCKET:BASIC\_AUTHENTICATION - WEBSOCKET:CONNECTIVITY - WEBSOCKET:FORBIDDEN - WEBSOCKET:INTERNAL\_SERVER\_ERROR - WEBSOCKET:INVALID\_SOCKET\_ID - WEBSOCKET:NO\_SUCH\_SOCKET - WEBSOCKET:NON\_UNIQUE\_SOCKET\_ID - WEBSOCKET:NOT\_FOUND - WEBSOCKET:REMOTELY\_CLOSED - WEBSOCKET:RETRY\_EXHAUSTED - WEBSOCKET:SERVICE\_UNAVAILABLE - WEBSOCKET:UNAUTHORIZED ## [](#Send)Send (送信) `` 指定されたソケットを通じてコンテンツを送信する。 ### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Socket Id

String (文字列)

データの送信に使用するソケットの ID。

x

Content (コンテンツ)

Binary (バイナリ)

送信するコンテンツ。

#[payload]

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#Config) ### [](#スロー-5)スロー - WEBSOCKET:CONNECTIVITY - WEBSOCKET:NO\_SUCH\_SOCKET - WEBSOCKET:RETRY\_EXHAUSTED ## [](#ソース)ソース ## [](#InboundListener)On New Inbound Message `` 外部システムが WebSocket を通じて接続できるエンドポイントを公開します。このソースは、こうした WebSockets がこのサーバーに情報を送信するたびに所有フローをトリガーします。さらに、ソケット接続が確立されるとパスが一致する ​`websocket:on-inbound-connection`​ コンポーネントがトリガーされます。 ### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

設定で指定されたパスからの相対パス。

x

Default Groups (デフォルトグループ)

Array of String (文字列の配列)

新規作成されたソケットが最初にサブスクライブするグループ。

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力-3)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#Config) ## [](#OnInboundConnection)On New Inbound Connection `` インバウンド WebSocket 接続が確立されたときにトリガーされます。 ### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

設定で指定されたパスからの相対パス。

x

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力-4)出力

型

String (文字列)

Attributes Type (属性型)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#Config) ## [](#OnSocketClosed)On Socket Closed `` WebSocket が閉じられたときにトリガーされる。 ### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

設定で指定されたパスからの相対パス。

x

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力-5)出力

型

終了された接続イベント。

Attributes Type (属性型)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#Config) ## [](#OutboundListener)On New Outbound Message `` アウトバウンドソケットがメッセージを受信したときにトリガーされる。 ### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Path (パス)

String (文字列)

設定で指定されたパスからの相対パス。

x

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Output Encoding (出力エンコード)

String (文字列)

この操作で出力されるペイロードのエンコード。

Config Ref (設定参照)

ConfigurationProvider

このコンポーネントを実行するために使用する設定の名前。

x

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

### [](#出力-6)出力

型

Any (任意)

Attributes Type (属性型)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#Config) ## [](#型)型 ### [](#WebSocketServerSettings)WebSocket Server Settings (WebSocket サーバー設定)
項目 型 説明 デフォルト値 必須

Listener Base Path (リスナーベースパス)

String (文字列)

この設定を通じて処理されるすべてのリソースに使用するベースパス。

/

リスナー設定

String (文字列)

インバウンドエンドポイントを公開するために使用される ​http:listener-config​ への参照。

x

Idle Socket Timeout (アイドルソケットタイムアウト)

Number (数値)

自動的に閉じるアイドル WebSockets のタイムアウト。

15

Idle Socket Timeout Unit (アイドルソケットタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#idleSocketTimeout を評価する時間単位。

MINUTES

### [](#WebSocketClientSettings)WebSocket Client Settings (WebSocket クライアント設定)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

要求が送信されるホスト。

Port (ポート)

Number (数値)

要求が送信されるポート。プロトコル属性が WS (デフォルト) の場合、デフォルト値は ​80​ です。プロトコル属性が WSS の場合、デフォルト値は ​443​ です。

Base Path (ベースパス)

String (文字列)

この設定を参照するすべてのアウトバウンドソケットに使用するベースパス。

/

Protocol (プロトコル)

Enumeration (列挙)。次のいずれかになります。

  • WS

  • WSS

アウトバウンド通信に使用するプロトコル。有効な値は ​WS​ と ​WSS​ です。デフォルト値は ​WS​ です。WSS を使用すると、HTTP 通信が TLS/SSL を使用して保護されます。WSS がプロトコルとして設定された場合、ユーザーは ​tls:context​ パラメーターを定義することで TLS/SSL 設定をカスタマイズできます。​tls:context​ が定義されていない場合、デフォルトの JVM 証明書が通信の確立に使用されます。

WS

Tls Context (TLS コンテキスト)

TLS

アウトバウンドソケットの WSS を有効にする TLS 設定要素への参照。

Default Headers (デフォルトヘッダー)

Header (ヘッダー)​ の配列

メッセージに含まれる必要があるデフォルト HTTP ヘッダー。

Default Query Params (デフォルトクエリパラメーター)

応答に含まれる必要があるデフォルトクエリパラメーター。

Connection Idle Timeout (接続アイドルタイムアウト)

Number (数値)

アイドル接続が終了されるタイムアウト。指定しない場合、タイムアウトはありません。

Connection Idle Timeout Unit (接続アイドルタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#connectionIdleTimeout を評価する時間単位。

MINUTES

Follow Redirects (リダイレクトをフォロー)

Boolean (ブール)

リダイレクトをフォローするかどうかを示します。

true

Preserve Headers Case (ヘッダーの文字を保持)

Boolean (ブール)

デフォルトでは、ヘッダーキーは内部的に小文字で保存されます。これは、ヘッダー処理のパフォーマンス向上が目的で、RFC の仕様どおりに正しく機能します。

サーバーが特定の文字のヘッダーを期待している場合、このフラグを ​`true`​ に設定してヘッダーキーの文字を保持します。

false

Max Connections (最大接続数)

Number (数値)

同時に開いた状態にできるアウトバウンド接続の最大数。デフォルトでは、接続数は無制限です。

-1

Proxy Config (プロキシ設定)

次のいずれかになります。

プロキシ経由のアウトバウンド接続の再利用可能な設定要素。プロキシ要素では、必ずホスト名およびポート属性を定義し、必要に応じてユーザー名とパスワードを定義できます。

Authentication (認証)

HttpRequestAuthentication

HTTP 要求で使用する認証方式。

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true​ に設定した場合、証明書の検証が行われず、攻撃に対して脆弱な接続がレンダリングされます。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーが含まれている場合は、この属性によって使用するキーの別名を示します。定義しない場合、ファイルにある最初のキーがデフォルトで使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#StandardRevocationCheck)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に CRL を試みます (OCSP ではない)。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#CustomOcspResponder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#CrlFile)CRL File (CRL ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#Header)Header (ヘッダー)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#QueryParam)Query Param (クエリパラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

x

Value (値)

String (文字列)

x

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。true に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#Reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Blocking

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

Count (数)

Number (数値)

再接続の試行回数。

### [](#ReconnectForever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Blocking

Boolean (ブール)

false の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

### [](#InboundWebSocketAttributes)インバウンド WebSocket 属性。
項目 型 説明 デフォルト値 必須

バージョン

String (文字列)

要求の HTTP バージョン。

x

Local Address (ローカルアドレス)

String (文字列)

サーバーからのローカルホストアドレス。

x

Remote Address (リモートアドレス)

String (文字列)

送信者からのリモートホストアドレス。

x

Client Certificate (クライアント証明書)

Any (任意)

クライアント証明書 (双方向 TLS が有効な場合)。

Socket Id

String (文字列)

ソケット ID。

x

Socket Type (ソケット種別)

Enumeration (列挙)。次のいずれかになります。

  • INBOUND

  • OUTBOUND

ソケット種別。

x

Groups (グループ)

Array of String (文字列の配列)

このソケットがサブスクライブされるグループ。

x

Path (パス)

String (文字列)

要求が受信された場所のフルパス。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Schema (スキーマ)

Enumeration (列挙)。次のいずれかになります。

  • WS

  • WSS

要求の HTTP スキーム。

x

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Headers (ヘッダー)

Object (オブジェクト)

解析した文字列からビルドしたヘッダーのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

### [](#RepeatableInMemoryStream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームしてランダムにアクセスするために割り当てられるメモリ量。ストリームに含まれているデータがこのバッファに適合できる量を超えている場合、bufferSizeIncrement 属性に従ってバッファが拡張され、上限は maxInMemorySize となります。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、どれだけ拡張するか。値を 0 以下に設定すると、バッファが拡張されません。つまり、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。これを超えると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

これらのすべての属性の単位

### [](#RepeatableFileStoreStream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクへのコンテンツのバッファが開始されます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。

SHA-256

Message Identifier (メッセージ識別子)

メッセージを識別するために使用される戦略を定義します。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#RedeliveryPolicyMessageIdentifier)Redelivery Policy Message Identifier (再配信ポリシーメッセージ識別子)
項目 型 説明 デフォルト値 必須

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が false の場合にのみ設定できます。

### [](#WebSocketAttributes)WebSocket 属性
項目 型 説明 デフォルト値 必須

Socket Id

String (文字列)

ソケット ID。

x

Socket Type (ソケット種別)

Enumeration (列挙)。次のいずれかになります。

  • INBOUND

  • OUTBOUND

ソケット種別。

x

Groups (グループ)

Array of String (文字列の配列)

このソケットがサブスクライブされるグループ。

x

Path (パス)

String (文字列)

要求が受信された場所のフルパス。

x

Request Uri (要求 URI)

String (文字列)

要求の完全 URI。

x

Schema (スキーマ)

Enumeration (列挙)。次のいずれかになります。

  • WS

  • WSS

要求の HTTP スキーム。

x

Query Params (クエリパラメーター)

Object (オブジェクト)

解析した文字列からビルドしたクエリパラメーターのマッピング。

x

Headers (ヘッダー)

Object (オブジェクト)

解析した文字列からビルドしたヘッダーのマッピング。

x

Uri Params (URI パラメーター)

Object (オブジェクト)

要求パスから抽出した URI パラメーター。

x

Method (メソッド)

String (文字列)

要求の HTTP メソッド。

x

Query String (クエリ文字列)

String (文字列)

要求のクエリ文字列。

x

### [](#ClosedConnectionEvent)終了された接続イベント。
項目 型 説明 デフォルト値 必須

Code (コード)

Enumeration (列挙)。次のいずれかになります。

  • NORMAL_CLOSURE​

  • ENDPOINT_GOING_DOWN​

  • PROTOCOL_ERROR​

  • INVALID_DATA​

  • MESSAGE_TOO_LARGE

クローズコード。

x

理由

String (文字列)

ソケットが閉じられた理由が含まれる語句。

### [](#BroadcastFailure)ブロードキャストの失敗
項目 型 説明 デフォルト値 必須

エラーメッセージ

String (文字列)

例外

Any (任意)

Socket Id

String (文字列)

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • INBOUND

  • OUTBOUND

Uri

String (文字列)

### [](#Proxy)Proxy (プロキシ)
項目 型 説明 デフォルト値 必須

Host (ホスト)

String (文字列)

プロキシ要求が送信されるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求が送信されるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

### [](#NtlmProxy)NTLM Proxy (NTLM プロキシ)
項目 型 説明 デフォルト値 必須

Ntlm Domain (NTLM ドメイン)

String (文字列)

プロキシに対して認証するドメイン。

x

Host (ホスト)

String (文字列)

プロキシ要求が送信されるホスト。

x

Port (ポート)

Number (数値)

プロキシ要求が送信されるポート。

x

Username (ユーザー名)

String (文字列)

プロキシに対して認証するユーザー名。

Password (パスワード)

String (文字列)

プロキシに対して認証するパスワード。

Non Proxy Hosts (非プロキシホスト)

String (文字列)

プロキシの使用対象にならないカンマ区切りホストのリスト。

## [](#関連情報)関連情報 - [WebSocket Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # WebSockets サーバーコンポーネント ## [](#inbound-listener)Inbound Listener Inbound Listener コンポーネントは、クライアントが接続できる WebSocket エンドポイントを表します。このエンドポイントを参照して、外部クライアントは WebSocket 接続を確立し、メッセージを送信するたびにフローをトリガーします。 クライアントは、defaultGroups パラメーターでこのエンドポイントが自動的にサブスクライブするデフォルトのグループを示すこともできます。こうしたグループに対してブロードキャスト操作が実行された場合、このエンドポイントが受信して処理します。このサブスクリプションはアプリケーションドメイン内で実行されます。つまり、デフォルトのグループパラメーターを追加しても対応するアウトバウンド WebSocket にこのサブスクリプションに関する情報が送信されません。これは、グループの機能が WS プロトコルの一部ではないためです。グループに対するインバウンド WebSocket をサブスクライブする場合、アプリケーションドメイン内の 1 つの WebSocket がその他のすべての WebSockets にメッセージを送信するには、アプリケーションドメインも指定されたグループにサブスクライブされている必要があります。要するに、グループのサブスクリプションは同じアプリケーションドメイン内にある WebSockets のみに影響を及ぼし、外部アプリケーションの WebSockets は Mule アプリケーションによって他のグループにサブスクライブされません。 ```xml #['I'm fine, thank you!'] #['Hi! How are you?'] ``` ## [](#応答の送信)応答の送信 フローが終了したときに自動的に応答を送信する ​``​ 要素とは異なり、このコンポーネントが自動的に応答を送信することはありません。これは、WebSocket プロトコルが全二重であり、そのために、応答を送信する必要があるまたは送信することを希望することが保証されないためです。ユースケースに応じて、応答を送信せずにメッセージを処理することを希望する場合もあれば、特定のケースに関する応答のみを送信することを希望する場合もあります。 応答を送信するには、​``​ 操作を使用します。 ### [](#出力)出力 新しいメッセージが到着するたびに、フローがメッセージを使用してトリガーされ、ペイロードにメッセージのコンテンツが含まれます。メッセージの MIME タイプは HTTP 要求の ​`Content-Type`​ ヘッダーから取得されます。MIME タイプが設定されていない場合、MIME タイプのデフォルトはプロトコルの DataFrame タイプに応じて次のいずれかになります。 - バイナリの場合、MIME のデフォルトは ​`application/octect-stream`​ になります。 - テキストの場合、MIME のデフォルトは ​`text/plain`​ になります。 属性には WebSockets 属性オブジェクトが含まれています。 ## [](#インバウンド接続)インバウンド接続 これは、INBOUND WebSockets 接続が確立されるたびにトリガーされるメッセージソースです。1 つのパスに指定できるのは次のソースのうちいずれか 1 つであり、そのパスで一致するインバウンドリスナーが存在する必要があります。これは、ソケットの記録やソケットへのグループの割り当てなど、接続後のタスクを実行するために便利です。 このフローは同期的にトリガーされます。このフローが呼び出されるまでに、ソケットはすでに確立されていて、メッセージをブロードキャストまたは受信する可能性もあります。こうしたメッセージはキューに登録され、ソースによってトリガーされたイベントが完了するまでフローに配信されません。失敗すると、キューに登録されたすべてのメッセージが破棄され、接続がドロップされます。 このメッセージソースには主に 2 つのユースケースがあります。 - 後で使用するために生成されたソケット ID を追跡する - WebSockets がアプリケーションで使用できるようになる前に拒否できる検証ポイントを設定する たとえば、次のフローでは要求の発生元の属性を検証し、検証に合格しなかった場合に接続を終了することを決定します。 ```xml ``` ## [](#関連情報)関連情報 - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [サーバーコンポーネント](#) - [メッセージング操作](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-messaging-operations) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # WebSockets の Studio 設定 Anypoint Studio でコネクタを設定する手順は、次のとおりです。 1. コネクタを Studio プロジェクトに追加します。 2. コネクタを設定します。 3. コネクタの入力元を設定します。 ## [](#studio-プロジェクトへのコネクタの追加)Studio プロジェクトへのコネクタの追加 Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、\[Mule Palette (Mule パレット)\] ビューから追加します。 ### [](#exchange-を使用してコネクタを追加する)Exchange を使用してコネクタを追加する 1. Studio で Mule プロジェクトを作成します。 2. Studio タスクバーの左上にある Exchange アイコン ​**(X)**​ をクリックします。 3. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 4. Exchange で「websockets」を検索します。 5. コネクタを選択して ​**\[Add to project (プロジェクトに追加)\]**​ をクリックします。 6. 画面の指示に従ってコネクタをインストールします。 ### [](#studio-でコネクタに追加する)Studio でコネクタに追加する 1. Studio で Mule プロジェクトを作成します。 2. \[Mule Palette (Mule パレット)\] ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 3. **\[Add Modules to Project (モジュールをプロジェクトに追加)\]**​ で、検索項目に「websockets」と入力します。 4. **\[Available modules (使用可能なモジュール)\]**​ で、このコネクタの名前をクリックします。 5. **\[Add (追加)\]**​ をクリックします。 6. **\[Finish (完了)\]**​ をクリックします。 ## [](#コネクタの設定)コネクタの設定 1. **\[Global Elements (グローバル要素)\]**​ タブに移動して、​**\[Create (作成)\]**​ をクリックします。 2. **\[Connector Configuration (コネクタ設定)\]**​ から、​**\[WebSockets Config (WebSockets 設定)\]**​ を選択します。 3. コネクタで受信要求をリスンするには、​**\[Configure Inbound WebSocket (インバウンド WebSocket を設定)\]**​ セクションをオンにします。 外部サービスに対する要求を実行するには、​**\[Configure Outbound WebSocket (アウトバウンド WebSocket を設定)\]**​ セクションをオンにします。 アプリケーションでインバウンド接続とアウトバウンド接続の両方を実行する場合は両方のセクションをオンにできます。 ### [](#インバウンド-websockets-の設定)インバウンド WebSockets の設定 1. **\[Global Elements (グローバル要素)\]**​ タブに移動して、​**\[Create (作成)\]**​ をクリックします。 2. **\[Connector Configuration (コネクタ設定)\]**​ から、​**\[HTTP Listener Config (HTTP リスナー設定)\]**​ を選択します。 3. WebSockets 設定で、​**\[Server settings (サーバー設定)\]**​ ボックスをオンにします。 4. リスナーベースパスを指定して (省略可能)、以前に作成した HTTP リスナー設定を参照します。 ### [](#アウトバウンド-websockets-の設定)アウトバウンド WebSockets の設定 1. WebSockets 設定で、​**\[Client settings (クライアント設定)\]**​ ボックスをオンにします。 2. 次の省略可能なプロパティを指定します。 - Host (ホスト) - Port (ポート) - Path (パス) 3. **\[Default Headers (デフォルトヘッダー)\]**​ および ​**\[Query Parameters (クエリパラメーター)\]**​ セクションで、ドロップダウンリストからオプションを選択することでヘッダーおよびクエリパラメーターのデフォルト値を導入できます。 1. **\[Expression (式)\]**​ を選択して ​`dwl`​ 式を入力します。 2. **\[Edit Inline (インラインで編集)\]**​ をクリックして、\[+\] 記号をクリックしてキーと値のペアを入力します。 ## [](#入力元を設定する)入力元を設定する コネクタの入力元を設定します。 コネクタの次の操作を Studio キャンバスの ​**\[Source (ソース)\]**​ 領域に配置できます。 - Inbound Listener - On Outbound Socket Message - On Inbound Connection (Inbound Listener が必要) - On Socket Closed ## [](#次のステップ)次のステップ これで Studio の設定が完了しましたので、​[「コネクタの設定」](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics)​で他の設定に関する情報を確認してください。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [XML と Maven の設定](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-xml-maven) # WebSockets の再接続 WebSockets は永続的でステートフルな接続に基づきます。接続は確立されてから操作に使用している間に、アイドルタイムアウトやネットワーク状態などの要因により、不意に切断される場合があります。 接続を再確立するにはリモートシステムが接続要求を再送信する必要があるため、インバウンドソケットは自動的に再接続できません。 ただし、アウトバウンドソケットの場合は、接続がドロップされた場合に再接続ポリシーを使用して接続を再確立することができます。 Mule アプリケーションが、たとえばメッセージをソケットに送信するために、不意に終了された WebSocket を使用しようとした場合、最初にアウトバウンドソケットを確立したのと同じ HTTP 要求を再生することで、接続が再確立されます。その後、操作が自動的に再試行されます。 次の例は、接続がドロップされた場合に、1 秒に 1 回ずつ、最大 5 回再接続を試みるように ​``​ 操作を使用して再接続ポリシーを送信する方法を示しています。 ```xml Hello World! ``` ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [Connector Configuration (コネクタ設定)](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics) # WebSockets メッセージング操作 ## [](#send-操作)Send 操作 Send 操作により、接続が確立された後にそのソケット ID によって識別される WebSocket を通じてメッセージを送信できます。この操作は、インバウンドとアウトバウンドの両方の WebSocket インスタンスで使用できます。 ```xml 'Good morning!' #['Good morning ' ++ attributes.socketId ++ '!'] ``` ## [](#broadcast-操作)Broadcast 操作 Broadcast 操作はメッセージをソケットのグループに送信します。メッセージをブロードキャストできるソケットのグループを選択する手順は、次のとおりです。 - 特定のグループをサブスクライブする - 特定のパスに接続する - 特定の種別にする (INBOUND または OUTBOUND) 種別およびグループパラメーターは連携して加法的に機能します。省略することも個別に使用することもできますが、一緒に使用すると 2 つのレベルの絞り込みとして動作します。 ```xml ``` ### [](#出力)出力 Broadcast 操作の出力は void です。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [グループの管理](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-managing-groups) - [Connector Configuration (コネクタ設定)](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics) # WebSockets 接続の終了 この操作は、ソケット ID で参照されている現在接続中の WebSockets を終了します。 ```xml ``` ## [](#close-の出力)Close の出力 この操作は、ペイロードや属性を返しません。 ## [](#on-socket-closed)On Socket Closed メッセージソースは、WebSocket が終了するたびにフローをトリガーします。これは、クリーンアップ操作、ログ記録、アプリケーションの状態の更新を実行する場合に便利です。 これは非同期です。フローが呼び出されるまでに、ソケットは終了しています。参照される WebSocket を介してメッセージを送信しようとすると、エラーが発生します。 ```xml ``` path パラメーターは、終了時にフローをトリガーするソケットのパスを示します。​`catch-all`​ を指定する場合、アスタリスクワイルドカード記号 (∗) を使用できます。 ## [](#on-socket-closed-の出力)On Socket Closed の出力 この操作は、空のペイロードと属性の WebSocketAttributes オブジェクトを返します。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Reconnection (再接続)](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-reconnection) - [サーバーコンポーネント](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-server-components) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) # WebSockets 管理グループ WebSockets Connector が使用するソケットグループは、WebSockets クライアントが必要に応じてサブスクライブできる文字列 ID です。これは、いわゆるメッセージ分離に便利です。メッセージ分離により、アプリケーションで単一のメッセージを異なる WebSockets クライアントのグループにブロードキャストできます。 グループを利用する方法の例は、ブロードキャスト操作のドキュメントに記載されています。 ``​ トリガーと ​``​ 操作の両方で、デフォルトのグループを指定できます。これは、新規のインバウンドおよびアウトバウンドソケットがすべて自動的にサブスクライブされるグループです。 手動でのサブスクライブまたはグループからのソケットのサブスクライブ解除が必要になるユースケースもあります。たとえば、インバウンド WebSocket が確立されるマルチテナントアプリケーションのユースケースを考えてみましょう。イニシエーターの HTTP 要求には ​`clientId`​ と呼ばれる認証ヘッダーが含まれます。クライアント ID を検証して、クライアントが属する組織を識別する ​`orgId`​ と呼ばれる変数を設定する ​`fetch-client-details`​ と呼ばれるフローをコールします。ソケットがその組織を識別するグループに追加されます。 (組織 ID) にサブスクライブされるグループはランタイムにしか決定できないため、グループサブスクリプションは動的です。 フローの例を次に示します。 ```xml ``` このユースケースの裏側として、グループから動的にサブスクライブ解除する必要もあり、これは ​``​ 操作を使用して実行できます。 ```xml ``` ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [WebSockets Connector の概要](https://docs.mulesoft.com/jp/websockets-connector/latest/) - [Connector Configuration (コネクタ設定)](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-config-topics) - [メッセージング操作](https://docs.mulesoft.com/jp/websockets-connector/latest/websockets-connector-messaging-operations)