Class HandshakeWebSocketService
- All Implemented Interfaces:
Lifecycle,WebSocketService
WebSocketService implementation that handles a WebSocket HTTP
handshake request by delegating to a RequestUpgradeStrategy which
is either auto-detected (no-arg constructor) from the classpath but can
also be explicitly configured.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor automatic, classpath detection based discovery of theRequestUpgradeStrategyto use.HandshakeWebSocketService(RequestUpgradeStrategy upgradeStrategy) Alternative constructor with theRequestUpgradeStrategyto use. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoStart()protected voiddoStop()Return the configured predicate for initialization WebSocket session attributes fromWebSessionattributes.Return theRequestUpgradeStrategyfor WebSocket requests.reactor.core.publisher.Mono<Void>handleRequest(ServerWebExchange exchange, WebSocketHandler handler) Handle the request with the givenWebSocketHandler.booleanCheck whether this component is currently running.voidsetSessionAttributePredicate(Predicate<String> predicate) Configure a predicate to use to extractWebSessionattributes and use them to initialize the WebSocket session with.voidstart()Start this component.voidstop()Stop this component, typically in a synchronous fashion, such that the component is fully stopped upon return of this method.
-
Field Details
-
logger
-
-
Constructor Details
-
HandshakeWebSocketService
public HandshakeWebSocketService()Default constructor automatic, classpath detection based discovery of theRequestUpgradeStrategyto use. -
HandshakeWebSocketService
Alternative constructor with theRequestUpgradeStrategyto use.- Parameters:
upgradeStrategy- the strategy to use
-
-
Method Details
-
getUpgradeStrategy
Return theRequestUpgradeStrategyfor WebSocket requests. -
setSessionAttributePredicate
Configure a predicate to use to extractWebSessionattributes and use them to initialize the WebSocket session with.By default this is not set in which case no attributes are passed.
- Parameters:
predicate- the predicate- Since:
- 5.1
-
getSessionAttributePredicate
Return the configured predicate for initialization WebSocket session attributes fromWebSessionattributes.- Since:
- 5.1
-
start
public void start()Description copied from interface:LifecycleStart this component.Should not throw an exception if the component is already running.
In the case of a container, this will propagate the start signal to all components that apply.
-
doStart
protected void doStart() -
stop
public void stop()Description copied from interface:LifecycleStop this component, typically in a synchronous fashion, such that the component is fully stopped upon return of this method. Consider implementingSmartLifecycleand itsstop(Runnable)variant when asynchronous stop behavior is necessary.Note that this stop notification is not guaranteed to come before destruction: On regular shutdown,
Lifecyclebeans will first receive a stop notification before the general destruction callbacks are being propagated; however, on hot refresh during a context's lifetime or on aborted refresh attempts, a given bean's destroy method will be called without any consideration of stop signals upfront.Should not throw an exception if the component is not running (not started yet).
In the case of a container, this will propagate the stop signal to all components that apply.
-
doStop
protected void doStop() -
isRunning
public boolean isRunning()Description copied from interface:LifecycleCheck whether this component is currently running.In the case of a container, this will return
trueonly if all components that apply are currently running. -
handleRequest
public reactor.core.publisher.Mono<Void> handleRequest(ServerWebExchange exchange, WebSocketHandler handler) Description copied from interface:WebSocketServiceHandle the request with the givenWebSocketHandler.- Specified by:
handleRequestin interfaceWebSocketService- Parameters:
exchange- the current exchangehandler- handler for WebSocket session- Returns:
- a
Mono<Void>that completes when application handling of the WebSocket session completes.
-