public class JettyRequestUpgradeStrategy extends ObjectSE implements RequestUpgradeStrategy, ServletContextAware, Lifecycle
RequestUpgradeStrategy
。Jetty の内部 org.eclipse.jetty.websocket.server.WebSocketHandler
クラスに基づいています。コンストラクターと説明 |
---|
JettyRequestUpgradeStrategy() デフォルトのコンストラクターを介して WebSocketServerFactory を作成するデフォルトのコンストラクター。デフォルトの WebSocketPolicy を使用します。 |
JettyRequestUpgradeStrategy(org.eclipse.jetty.websocket.api.WebSocketPolicy policy) WebSocketServerFactory インスタンスの作成時に使用される WebSocketPolicy を受け入れるコンストラクター。 |
JettyRequestUpgradeStrategy(org.eclipse.jetty.websocket.server.WebSocketServerFactory factory) WebSocketServerFactory を受け入れるコンストラクター。 |
修飾子と型 | メソッドと説明 |
---|---|
ListSE<WebSocketExtension> | getSupportedExtensions(ServerHttpRequest request) 基礎となる WebSocket サーバーによってサポートされる WebSocket プロトコル拡張機能を返します。 |
StringSE[] | getSupportedVersions() サポートされている WebSocket プロトコルバージョンを返します。 |
boolean | isRunning() このコンポーネントが現在実行されているかどうかを確認します。 |
void | setServletContext(ServletContextEE servletContext) このオブジェクトが実行される ServletContext EE を設定します。 |
void | start() このコンポーネントを起動します。 |
void | stop() このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。 |
void | upgrade(ServerHttpRequest request, ServerHttpResponse response, StringSE selectedProtocol, ListSE<WebSocketExtension> selectedExtensions, PrincipalSE user, WebSocketHandler wsHandler, MapSE<StringSE, ObjectSE> attributes) ランタイム固有の手順を実行して、アップグレードを完了します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public JettyRequestUpgradeStrategy()
WebSocketServerFactory
を作成するデフォルトのコンストラクター。デフォルトの WebSocketPolicy
を使用します。public JettyRequestUpgradeStrategy(org.eclipse.jetty.websocket.api.WebSocketPolicy policy)
WebSocketServerFactory
インスタンスの作成時に使用される WebSocketPolicy
を受け入れるコンストラクター。policy
- 使用するポリシー public JettyRequestUpgradeStrategy(org.eclipse.jetty.websocket.server.WebSocketServerFactory factory)
WebSocketServerFactory
を受け入れるコンストラクター。factory
- 使用する事前構成済みのファクトリ public void setServletContext(ServletContextEE servletContext)
ServletContextAware
ServletContext
EE を設定します。 通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet
またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext
の後に呼び出されます。
ServletContextAware
の setServletContext
servletContext
- このオブジェクトによって使用される ServletContext オブジェクト InitializingBean.afterPropertiesSet()
, ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)
public void start()
Lifecycle
コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
Lifecycle
の start
SmartLifecycle.isAutoStartup()
public void stop()
Lifecycle
SmartLifecycle
とその stop(Runnable)
バリアントの実装を検討してください。 この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle
Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。
コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
Lifecycle
の stop
SmartLifecycle.stop(Runnable)
, DisposableBean.destroy()
public boolean isRunning()
Lifecycle
コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true
を返します。
public StringSE[] getSupportedVersions()
RequestUpgradeStrategy
RequestUpgradeStrategy
の getSupportedVersions
public ListSE<WebSocketExtension> getSupportedExtensions(ServerHttpRequest request)
RequestUpgradeStrategy
RequestUpgradeStrategy
の getSupportedExtensions
public void upgrade(ServerHttpRequest request, ServerHttpResponse response, @Nullable StringSE selectedProtocol, ListSE<WebSocketExtension> selectedExtensions, @Nullable PrincipalSE user, WebSocketHandler wsHandler, MapSE<StringSE,ObjectSE> attributes) throws HandshakeFailureException
RequestUpgradeStrategy
RequestUpgradeStrategy
の upgrade
request
- 現在のリクエスト response
- 現在のレスポンス selectedProtocol
- 選択されたサブプロトコル(存在する場合)selectedExtensions
- 選択された WebSocket プロトコル拡張 user
- WebSocket セッションに関連付けるユーザー wsHandler
- WebSocket メッセージのハンドラー attributes
- ハンドシェイクは、HandshakeInterceptor
を介して WebSocket セッションで設定され、WebSocketHandler
で利用可能になる特定の属性をリクエストします。HandshakeFailureException
- ハンドシェイクリクエストの要件のネゴシエーションに失敗したのではなく、内部の回復不可能なエラー、つまりサーバーエラーが原因でハンドシェイク処理が完了しなかった場合にスローされます。