パッケージ jakarta.websocket.server
クラス ServerEndpointConfig.Configurator
- java.lang.ObjectSE
-
- jakarta.websocket.server.ServerEndpointConfig.Configurator
- 含まれているインターフェース:
- ServerEndpointConfig
public static class ServerEndpointConfig.Configurator extends ObjectSE
ServerEndpointConfig.Configurator クラスは、オープニングハンドシェイクのインターセプトなどのカスタム構成アルゴリズムを提供したり、このコンフィギュレーターで構成された各エンドポイントインスタンスからアクセスできる任意のメソッドとアルゴリズムを提供したい開発者によって拡張できます。実装では、サービスローダーを使用してプラットフォームのデフォルトコンフィギュレーターをロードする必要があります。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 Configurator()
方法の概要
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 boolean
checkOrigin(StringSE originHeaderValue)
クライアントがオープニングハンドシェイク中に渡した Origin ヘッダー(オリジンヘッダーを参照してください)の値を確認します。ServerEndpointConfig.Configurator
getContainerDefaultConfigurator()
プラットフォームのデフォルトコンフィギュレータを返します。<T> T
getEndpointInstance(ClassSE<T> endpointClass)
このメソッドは、このクライアントが設定する論理エンドポイントに新しいクライアントが接続するたびにコンテナーによって呼び出されます。ListSE<Extension>
getNegotiatedExtensions(ListSE<Extension> installed, ListSE<Extension> requested)
リクエストされた拡張リストが渡された場合、サーバーエンドポイントがサポートする拡張機能の順序付きリストを返します。ない場合は空のリストを返します。StringSE
getNegotiatedSubprotocol(ListSE<StringSE> supported, ListSE<StringSE> requested)
サーバーエンドポイントが、接続を希望するクライアントから提供されたリクエストリストから選択したサブプロトコルを返します。このサーバーエンドポイントが 1 つも気に入っていない場合は、なしを返します。void
modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response)
整形式のハンドシェイクリクエストから生じるハンドシェイクレスポンスを定式化した後にコンテナーによって呼び出されます。
メソッドの詳細
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
- エンドポイントインスタンスの生成中にエラーが発生した場合。