パッケージ 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