パッケージ 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
  • メソッドの詳細

    • 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 コンテナーの一部としてデプロイされていない場合、このメソッドは UnsupportedOperationExceptionSE をスローします。

      パラメーター:
      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