WebSocket

WebSocket は、Web ブラウザーまたはクライアント・アプリケーションと Web サーバー・アプリケーションが単一の全二重接続を使用して通信できるようにする標準プロトコルです。

Open Liberty Libertyでの WebSocket アプリケーションの開発に関する最新情報については、 Open Liberty Web サイトを参照してください。

HTTP は、2 つのアプリケーション間での長時間存続するリアルタイム全二重通信用に設計されているわけではありません。 多くの場合、ユーザーの Web サーバー・アプリケーションまたはサーブレットでは、長時間存続するリアルタイム全二重通信でクライアント・ブラウザーまたはアプリケーションと通信する必要があります。 言い換えると、2 つのアプリケーションでは、データを双方向に自由に読み書きする必要があります。 このタイプのアプリケーションの例としては、株式トレーダーの Web ブラウザーで変化する為替レートを常時表示するアプリケーションが挙げられます。 既存の HTTP テクノロジーを使用してこのタイプの通信を実現する現在のソリューションは複雑で、非効率的です。 ブラウザーとサーバー間の常時両方向通信用の HTTP ソリューションはたいてい、ポーリング、または片方向のトラフィックのみを処理する 2 つのオープン HTTP 接続のいずれか、あるいはその両方で構成されます。

WebSocket は、標準的な HTTP 要求応答シーケンスを使用して接続を確立します。 接続が確立されると、WebSocket API は、確立された接続を介して非同期全二重方式でデータを読み書きするための読み取りおよび書き込みインターフェースを提供します。 また、WebSocket は、一方から接続を非同期的に閉じるためのインターフェースも提供します。

WebSocket は標準的な HTTP 要求応答シーケンスを使用して接続を確立するため、HTTP 接続と同様に、接続開始では、ファイアウォールおよびプロキシーを介して接続されます。 WebSocket では、同じ接続での同時の読み取りと書き込みなど、全二重通信が必要です。 WebSphere Web サーバー・プラグインでは全二重通信がサポートされますが、このサポートを有効にするには、他のファイアウォールおよびプロキシーの変更が必要になることがあります。 WebSocket は、セキュア接続およびデータのセキュアな送信のために SSL を使用することも可能です。 このプロトコルでは、HTTP プロトコルが SSL を使用するのと同様に SSL を使用します。

Liberty WebSocket フィーチャーは、以下の仕様を実装します。

Liberty は、 WebSocket 1.0 および WebSocket 1.1 仕様をサポートしています。 WebSocket 1.0 と比較して、WebSocket 1.1 では、メッセージ・ハンドラーを指定するためのより堅固な方法がサポートされます。