Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerWebSockets Connector バージョン 1.0
WebSockets 用 Anypoint Connector (WebSockets Connector) には、次のインテグレーション機能があります。
サーバーとクライアント間で双方向全二重通信を確立する
サーバーのプッシュ通知を実装する
既存の HTTP インフラストラクチャ上でシームレスに機能する
クライアントが定期的にサーバーの新しいデータをポーリングしないで済む
WebSocket は、クライアントとサーバー間の双方向 TCP 接続で、アプリケーションで接続を終了するまで開いたままになっています。WebSocket の場合、アプリケーションは HTTP を使用して初期接続を行います。その後、接続がソケットベースの TCP 接続にアップグレードされます。
リリースノート: WebSockets Connector リリースノート
Exchange: WebSockets Connector
従来の HTTP では、接続は半二重 (一方向) で、要求-応答メッセージエクスチェンジパターンを使用することで機能します。
クライアントはサーバーに接続して要求を送信します。
サーバーは要求を処理して応答を返します。クライアントが応答を受信すると接続が終了します。
従来の HTTP 接続では、クライアントアプリケーションがサーバーから応答を受信するまでブロックされるため、膨大なオーバーヘッドが必要になります。また、この接続種別では、クライアントが常に要求を開始する必要があります。そのため、サーバーは複数のアプリケーションに同時に通知をプッシュできません。
クライアントが WebSockets を使用してサーバーに接続すると、永続接続が確立され、開いたままになります。クライアントとサーバーの両方で複数のメッセージを相互に送信でき、HTTP 要求-応答メッセージエクスチェンジパターンに従う必要はありません。
WebSocket は、既存の HTTP インフラストラクチャ上に構築されるため、従来の HTTP のためにすでに用意されているインフラストラクチャを簡単に再利用できます。
WebSockets Connector は、HTTP 要求-応答メッセージエクスチェンジパターンによって引き起こされるオーバーヘッドを回避する必要のあるリアルタイムアプリケーションで役立ちます。
WebSockets Connector の一般的なユースケースとして、チャットアプリケーションや株価情報アプリケーションなどが挙げられます。
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 Connector のしくみを理解するには、次の概念が不可欠です。
WebSockets には次の 2 種類があります。
Inbound (インバウンド)
Mule アプリケーションが受信接続をリスンするときに作成される WebSocket。
このシナリオでは、外部システムが Mule アプリケーションによって公開されたエンドポイントに接続します。
Outbound
Mule アプリケーションが外部システムに接続したときに作成される WebSocket。
このシナリオでは、Mule アプリケーションが通信を開始し、WebSocket を確立するように外部システムに依頼します。
すべての WebSockets (インバウンドとアウトバウンドの両方) に、それらを識別する一意のソケット ID があります。アプリケーションは、それらの ID を参照して、個々の WebSockets を操作する必要があります。
WebSockets Connector には、グループ (個々の WebSockets が必要に応じてサブスクライブできる文字列識別子) の概念が導入されています。アプリケーションは、グループを使用して 1 つメッセージをさまざまな WebSockets のグループにブロードキャストできます。グループを使用すると、各ブロードキャストに参加すべき WebSockets を識別するためのプロセスが促進されます。
サブスクリプションは、WebSockets Connector 設定の各インスタンスのコンテキストにのみ存在します。そのため、Mule アプリケーションとリモートシステム間で WebSockets を確立した場合、グループに接続するための Mule 側の WebSockets にサブスクライブしても、リモートシステム側の WebSockets には影響しません。
トリガーにより、メッセージやイベント通知の受信時にフローの実行が開始されます。WebSockets 関連のイベントで次のトリガーを指定できます。
On New Inbound Message
外部システムが接続でき、メッセージの受信時に含まれているフローを開始するエンドポイントを公開します。
On New Inbound Connection
インバウンドリスナーへの新しい接続が確立されたときにフローを開始します。
On New Outbound Message
アウトバウンド WebSockets が外部システムからメッセージを受信したときにフローを開始するエンドポイントを公開します。
On Socket Closed
インバウンドまたはアウトバウンド WebSockets の終了時に含まれているフローを開始します。
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 の接続を終了します。
WebSockets Connector では、TLS で次の URI スキームを使用してクライアントおよびサーバーエンドポイントを保護できます。
WS は、暗号化を使用せずに WebSocket サーバーおよびリソース名を識別します (例: ws://localhost:80
)。
WSS は、TLS で保護して WebSocket サーバーおよびリソース名を識別します (例: wss://localhost:433
)。