第17章 WebSocket
17.1. WebSocket について
WebSocket プロトコルは、Web クライアントとサーバー間の双方向通信を提供します。クライアントとサーバー間の通信はイベントベースであるため、ポーリングベースの通信よりも処理が高速になり、帯域幅が小さくなります。WebSocket は、JavaScriptAPI を介して Web アプリケーションで使用できます。
最初に接続はクライアントとサーバー間で HTTP 接続として確立されます。その後、クライアントは
Upgrade
ヘッダーを使用して WebSocket 接続を要求します。同じ TCP/IP 接続上ではすべて全二重通信になり、データのオーバヘッドが最小化されます。各メッセージには不必要な HTTP ヘッダーコンテンツが含まれていないため、Websocket 通信で必要な帯域幅は小さくなります。その結果、通信パスのレイテンシーが低くなるため、リアルタイムの応答が必要なアプリケーションに適しています。
JBoss EAP 6 WebSocket 実装は、サーバーエンドポイントに対して完全な依存関係注入サポートを提供しますが、クライアントエンドポイントに対して CDI サービスを提供しません。CDI のサポートは、Java EE 6 プラットフォームで必要なサポートに限定されているため、エンドポイントのインターセプターなどの JavaEE7 の機能はサポートされていません。