パッケージ jakarta.websocket.server

クラス ServerEndpointConfig.Configurator

  • 含まれているインターフェース:
    ServerEndpointConfig

    public static class ServerEndpointConfig.Configurator
    extends ObjectSE
    ServerEndpointConfig.Configurator クラスは、オープニングハンドシェイクのインターセプトなどのカスタム構成アルゴリズムを提供したり、このコンフィギュレーターで構成された各エンドポイントインスタンスからアクセスできる任意のメソッドとアルゴリズムを提供したい開発者によって拡張できます。実装では、サービスローダーを使用してプラットフォームのデフォルトコンフィギュレーターをロードする必要があります。
    • コンストラクターの詳細

      • Configurator

        public Configurator()
    • メソッドの詳細

      • getContainerDefaultConfigurator

        public ServerEndpointConfig.Configurator getContainerDefaultConfigurator()
        プラットフォームのデフォルトコンフィギュレータを返します。
        戻り値:
        プラットフォームのデフォルトコンフィギュレーター
        導入:
        WebSocket 2.1
      • getNegotiatedSubprotocol

        public StringSE getNegotiatedSubprotocol​(ListSE<StringSE> supported,
                                               ListSE<StringSE> requested)
        サーバーエンドポイントが、接続を希望するクライアントから提供されたリクエストリストから選択したサブプロトコルを返します。このサーバーエンドポイントが 1 つも気に入っていない場合は、なしを返します。サーバーのオープニングハンドシェイクの送信を参照してください。サブクラスは、他の要因に基づいてカスタムアルゴリズムを提供する場合があります。

        このメソッドのデフォルトのプラットフォーム実装は、サーバーがサポートするクライアントによって送信されたリスト内の最初のサブプロトコルを返します。サブプロトコルがない場合は空の文字列を返します。

        パラメーター:
        requested - クライアントエンドポイントからリクエストされたサブプロトコル
        supported - サーバーエンドポイントでサポートされているサブプロトコル
        戻り値:
        ネゴシエートされたサブプロトコル、または存在しない場合は空の文字列。
      • getNegotiatedExtensions

        public ListSE<Extension> getNegotiatedExtensions​(ListSE<Extension> installed,
                                                       ListSE<Extension> requested)
        リクエストされた拡張リストが渡された場合、サーバーエンドポイントがサポートする拡張機能の順序付きリストを返します。ない場合は空のリストを返します。拡張機能のネゴシエーションを参照

        このメソッドのデフォルトのプラットフォーム実装は、このメソッドがサポートするこのメソッドに渡されたすべてのリクエストされた拡張機能を含むリストを返します。リクエストされた拡張機能の順序を使用します。

        パラメーター:
        installed - 実装にインストールされている拡張機能。
        requested - クライアントによってリクエストされた順序で、リクエストされた拡張機能
        戻り値:
        ネゴシエートされた拡張機能のリスト、ない場合は空のリスト。
      • checkOrigin

        public boolean checkOrigin​(StringSE originHeaderValue)
        クライアントがオープニングハンドシェイク中に渡した Origin ヘッダー(オリジンヘッダーを参照してください)の値を確認します。

        このメソッドのプラットフォームのデフォルト実装では、サーバーのオープニングハンドシェイクの送信の推奨事項に従って、開始ハンドシェイクとともに送信される Origin ヘッダーの有効性をチェックします。

        パラメーター:
        originHeaderValue - クライアントから渡された起点ヘッダーの値。
        戻り値:
        チェックに合格したかどうか
      • modifyHandshake

        public void modifyHandshake​(ServerEndpointConfig sec,
                                    HandshakeRequest request,
                                    HandshakeResponse response)
        コンテナーが、適切な形式のハンドシェイクリクエストから生じるハンドシェイクレスポンスを作成したあとに呼び出されます。コンテナーは、この構成に一致する URI があるかどうかすでに確認し、checkOrigin メソッドを使用してオリジンの有効性を決定し、この構成に基づいてネゴシエートされたサブプロトコルと拡張機能を記入しています。カスタム構成では、このメソッドをオーバーライドして、リクエストパラメーターをインスペクションし、サーバーが作成したハンドシェイクレスポンスを変更することができます。また、URI チェックも行われます。

        開発者がこのメソッドをオーバーライドしない場合、リクエストとレスポンスのさらなる変更は実装によって行われません。

        EndpointConfig.getUserProperties() を介して利用できるユーザープロパティは、WebSocket 接続ごと (つまり、Session ごと) のユーザープロパティのコピーである必要があります。このメソッドの実行中にユーザープロパティに加えられた変更を含むこのコピーを使用して、Session.getUserProperties() の初期コンテンツを設定する必要があります。

        パラメーター:
        sec - ハンドシェイクに関係する構成オブジェクト
        request - オープニングハンドシェイクリクエスト。
        response - 提案された開始ハンドシェイクレスポンス
      • getEndpointInstance

        public <T> T getEndpointInstance​(ClassSE<T> endpointClass)
                                  throws InstantiationExceptionSE
        このメソッドは、このクライアントが設定する論理エンドポイントに新しいクライアントが接続するたびにコンテナーによって呼び出されます。開発者は、このメソッドをオーバーライドしてエンドポイントインスタンスのインスタンス化を制御し、エンドポイントインスタンスの初期化をカスタマイズしたり、他の方法で管理したりできます。開発者がこのメソッドをオーバーライドすると、たとえば、実装が Java EE プラットフォームの一部である場合にサポートされる依存性注入などのサービスが利用できなくなる場合があります。このメソッドのプラットフォームのデフォルト実装は、呼び出しごとに新しいエンドポイントインスタンスを返すため、クライアントごとに 1 つのエンドポイントインスタンス、つまりデフォルトのデプロイカーディナリティが確保されます。
        型パラメーター:
        T - エンドポイントの型
        パラメーター:
        endpointClass - エンドポイントのクラス
        戻り値:
        新しいクライアントからのすべての対話を処理するエンドポイントのインスタンス。
        例外:
        InstantiationExceptionSE - エンドポイントインスタンスの生成中にエラーが発生した場合。