WebSocket
WebSocket は、Web ブラウザーまたはクライアント・アプリケーションと 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 1.0 仕様および WebSocket 1.1 仕様がサポートされます。WebSocket 1.0 と比較して、WebSocket 1.1 では、メッセージ・ハンドラーを指定するためのより堅固な方法がサポートされます。
WASdev.net から、WebSocket プロトコルを実装するサンプル・プログラムをダウンロードできます。Liberty での WebSocket の使用をウォークスルーする場合は、WASdev.net 上の『WebSocket sample application』を参照してください。