パッケージ jakarta.websocket.server
インターフェース ServerContainer
- すべてのスーパーインターフェース:
WebSocketContainer
public interface ServerContainer extends WebSocketContainer
ServerContainer は、サーバー側 デプロイで使用できる WebSocketContainer の特殊なビューです。Websocket アプリケーションごとに 1 つの ServerContainer インスタンスがあります。ServerContainer は、サーバーエンドポイントを登録できるメソッドを保持します。Websocket 対応の Web コンテナーの場合、開発者は、ServletContext で
jakarta.websocket.server.ServerContainer
という名前の属性として取得することにより、ServerContainer インスタンスへの参照を取得できます。このようにして、このインターフェースに保持されている登録メソッドを呼び出して、エンドポイントを含む WAR ファイルの デプロイ中に ServletContextListener からサーバーエンドポイントを登録できます。サーバーエンドポイントは、Web アプリケーションの開始後に登録することもできます。Web コンテナーの外部で実行される WebSocket 実装には、アプリケーションデプロイ時に開発者に ServerContainer インスタンスを提供する他の手段があります。
アプリケーションデプロイフェーズが完了し、websocket アプリケーションが受信接続の受け入れを開始すると、登録メソッドは呼び出されなくなります。
- 作成者:
- dannycoward
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 void
addEndpoint(ServerEndpointConfig serverConfig)
指定された構成によって記述された特定のエンドポイントをこの ServerContainer にデプロイします。void
addEndpoint(ClassSE<?> endpointClass)
指定されたアノテーション付きエンドポイントをこの ServerContainer にデプロイします。void
upgradeHttpToWebSocket(ObjectSE httpServletRequest, ObjectSE httpServletResponse, ServerEndpointConfig sec, MapSE<StringSE,StringSE> pathParameters)
HttpServletRequest
およびHttpServletResponse
で表される HTTP 接続を WebSocket プロトコルにアップグレードし、提供されたServerEndpointConfig
に従って WebSocket 接続を確立します。インターフェース jakarta.websocket.WebSocketContainer から継承されたメソッド
connectToServer, connectToServer, connectToServer, connectToServer, getDefaultAsyncSendTimeout, getDefaultMaxBinaryMessageBufferSize, getDefaultMaxSessionIdleTimeout, getDefaultMaxTextMessageBufferSize, getInstalledExtensions, setAsyncSendTimeout, setDefaultMaxBinaryMessageBufferSize, setDefaultMaxSessionIdleTimeout, setDefaultMaxTextMessageBufferSize
メソッドの詳細
addEndpoint
void addEndpoint(ClassSE<?> endpointClass) throws DeploymentException
指定されたアノテーション付きエンドポイントをこの ServerContainer にデプロイします。- パラメーター:
endpointClass
- アノテーション付きエンドポイントのクラス- 例外:
DeploymentException
- アノテーション付きエンドポイントの形式が正しくない場合。IllegalStateExceptionSE
- 含まれている websocket アプリケーションがすでにデプロイされている場合。
addEndpoint
void addEndpoint(ServerEndpointConfig serverConfig) throws DeploymentException
指定された構成によって記述された特定のエンドポイントをこの ServerContainer にデプロイします。- パラメーター:
serverConfig
- 登録される論理エンドポイントを表す構成インスタンス。- 例外:
DeploymentException
- エンドポイントの形式が不適切だった場合。IllegalStateExceptionSE
- 含まれている websocket アプリケーションがすでにデプロイされている場合。
upgradeHttpToWebSocket
void upgradeHttpToWebSocket(ObjectSE httpServletRequest, ObjectSE httpServletResponse, ServerEndpointConfig sec, MapSE<StringSE,StringSE> pathParameters) throws IOExceptionSE, DeploymentException
HttpServletRequest
およびHttpServletResponse
で表される HTTP 接続を WebSocket プロトコルにアップグレードし、提供されたServerEndpointConfig
に従って WebSocket 接続を確立します。このメソッドは主に、フロントコントローラーパターンを実装するフレームワークで使用することを目的としています。提供されたエンドポイントはデプロイしません。
WebSocket 実装が Jakarta Servlet コンテナーの一部としてデプロイされていない場合、このメソッドは
UnsupportedOperationException
SE をスローします。- パラメーター:
httpServletRequest
- RFC 6455 のセクション 4.0 に従って WebSocket ハンドシェイクとして処理されるHttpServletRequest
。httpServletResponse
- RFC 6455 のセクション 4.0 に従って、httpServletRequest
を WebSocket ハンドシェイクとして処理するときに使用されるHttpServletResponse
。sec
- WebSocket エンドポイントの構成に使用するサーバーエンドポイント構成pathParameters
- このメソッドの呼び出しによって確立された WebSocket 接続に使用されるパスパラメーターの名前と値 (存在する場合) のマッピングを提供します。そのようなマッピングが定義されていない場合は、空の Map を渡す必要があります。- 例外:
IllegalStateExceptionSE
- 提供されたリクエストが WebSocket ハンドシェイクの要件を満たしていない場合UnsupportedOperationExceptionSE
- WebSocket 実装が Jakarta Servlet コンテナーの一部としてデプロイされていない場合IOExceptionSE
- WebSocket 接続の確立中に I/O エラーが発生した場合DeploymentException
- 構成エラーにより WebSocket 接続の確立が妨げられた場合- 導入:
- WebSocket 2.1