Class WebSocketHandlerAdapter
java.lang.Object
org.springframework.web.reactive.socket.server.support.WebSocketHandlerAdapter
- All Implemented Interfaces:
Ordered
,HandlerAdapter
@ImportRuntimeHints(org.springframework.web.reactive.socket.server.support.HandshakeWebSocketServiceRuntimeHints.class)
public class WebSocketHandlerAdapter
extends Object
implements HandlerAdapter, Ordered
HandlerAdapter
that allows
DispatcherHandler
to support
handlers of type WebSocketHandler
with such handlers mapped to
URL patterns via
SimpleUrlHandlerMapping
.
Requests are handled by delegating to a
WebSocketService
, by default HandshakeWebSocketService
,
which checks the WebSocket handshake request parameters, upgrades to a
WebSocket interaction, and uses the WebSocketHandler
to handle it.
As of 5.3 the WebFlux Java configuration, imported via
@EnableWebFlux
, includes a declaration of this adapter and therefore
it no longer needs to be present in application configuration.
- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor that creates and uses aHandshakeWebSocketService
.WebSocketHandlerAdapter
(WebSocketService webSocketService) Alternative constructor with theWebSocketService
to use. -
Method Summary
Modifier and TypeMethodDescriptionint
getOrder()
Return theconfigured
order for this instance.Return the configuredWebSocketService
to handle requests.reactor.core.publisher.Mono<HandlerResult>
handle
(ServerWebExchange exchange, Object handler) Handle the request with the given handler, previously checked viaHandlerAdapter.supports(Object)
.void
setOrder
(int order) Set the order value for this adapter.boolean
Whether thisHandlerAdapter
supports the givenhandler
.
-
Constructor Details
-
WebSocketHandlerAdapter
public WebSocketHandlerAdapter()Default constructor that creates and uses aHandshakeWebSocketService
. -
WebSocketHandlerAdapter
Alternative constructor with theWebSocketService
to use.
-
-
Method Details
-
setOrder
public void setOrder(int order) Set the order value for this adapter.By default this is set to 2.
- Parameters:
order
- the value to set to- Since:
- 5.3
-
getOrder
public int getOrder()Return theconfigured
order for this instance. -
getWebSocketService
Return the configuredWebSocketService
to handle requests. -
supports
Description copied from interface:HandlerAdapter
Whether thisHandlerAdapter
supports the givenhandler
.- Specified by:
supports
in interfaceHandlerAdapter
- Parameters:
handler
- the handler object to check- Returns:
- whether the handler is supported
-
handle
public reactor.core.publisher.Mono<HandlerResult> handle(ServerWebExchange exchange, Object handler) Description copied from interface:HandlerAdapter
Handle the request with the given handler, previously checked viaHandlerAdapter.supports(Object)
.Implementations should consider the following for exception handling:
- Handle invocation exceptions within this method.
Set an exception handler
on the returnedHandlerResult
to handle deferred exceptions from asynchronous return values, and to handle exceptions from response rendering.- Implement
DispatchExceptionHandler
to extend exception handling to exceptions that occur before a handler is selected.
- Specified by:
handle
in interfaceHandlerAdapter
- Parameters:
exchange
- current server exchangehandler
- the selected handler which must have been previously checked viaHandlerAdapter.supports(Object)
- Returns:
Mono
that emits aHandlerResult
, or completes empty if the request is fully handled; any error signal would not be handled within theDispatcherHandler
, and would instead be processed by the chain of registeredWebExceptionHandler
s at the end of theWebFilter
chain
-