public class JettyWebSocketClient extends WebSocketClientSupport implements WebSocketClient, Lifecycle
WebSocketClient
implementation for use with Jetty
WebSocketClient
.
Note: the Jetty WebSocketClient
requires
lifecycle management and must be started and stopped. This is automatically
managed when this class is declared as a Spring bean and created with the
default constructor. See constructor notes for more details.
logger
Constructor and Description |
---|
JettyWebSocketClient()
Default constructor that creates and manages an instance of a Jetty
WebSocketClient . |
JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient jettyClient)
Constructor that accepts an existing instance of a Jetty
WebSocketClient . |
Modifier and Type | Method and Description |
---|---|
reactor.core.publisher.Mono<Void> |
execute(URI url,
HttpHeaders headers,
WebSocketHandler handler)
A variant of
WebSocketClient.execute(URI, WebSocketHandler) with custom headers. |
reactor.core.publisher.Mono<Void> |
execute(URI url,
WebSocketHandler handler)
Execute a handshake request to the given url and handle the resulting
WebSocket session with the given handler.
|
org.eclipse.jetty.websocket.client.WebSocketClient |
getJettyClient()
Return the underlying Jetty
WebSocketClient . |
boolean |
isRunning()
Check whether this component is currently running.
|
void |
start()
Start this component.
|
void |
stop()
Stop this component, typically in a synchronous fashion, such that the component is
fully stopped upon return of this method.
|
afterHandshake, beforeHandshake
public JettyWebSocketClient()
WebSocketClient
.
The instance can be obtained with getJettyClient()
for further
configuration.
Note: When this constructor is used Lifecycle
methods of this class are delegated to the Jetty WebSocketClient
.
public JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient jettyClient)
WebSocketClient
.
Note: Use of this constructor implies the Jetty
WebSocketClient
is externally managed and hence Lifecycle
methods of this class are not delegated to it.
public org.eclipse.jetty.websocket.client.WebSocketClient getJettyClient()
WebSocketClient
.public void start()
Lifecycle
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.
start
in interface Lifecycle
SmartLifecycle.isAutoStartup()
public void stop()
Lifecycle
SmartLifecycle
and its stop(Runnable)
variant when asynchronous stop behavior is necessary.
Note that this stop notification is not guaranteed to come before destruction:
On regular shutdown, Lifecycle
beans 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.
stop
in interface Lifecycle
SmartLifecycle.stop(Runnable)
,
DisposableBean.destroy()
public boolean isRunning()
Lifecycle
In the case of a container, this will return true
only if all
components that apply are currently running.
public reactor.core.publisher.Mono<Void> execute(URI url, WebSocketHandler handler)
WebSocketClient
execute
in interface WebSocketClient
url
- the handshake urlhandler
- the handler of the WebSocket sessionMono<Void>
to indicate the outcome of the
WebSocket session handling.public reactor.core.publisher.Mono<Void> execute(URI url, HttpHeaders headers, WebSocketHandler handler)
WebSocketClient
WebSocketClient.execute(URI, WebSocketHandler)
with custom headers.execute
in interface WebSocketClient
url
- the handshake urlheaders
- custom headers for the handshake requesthandler
- the handler of the WebSocket sessionMono<Void>
to indicate the outcome of the
WebSocket session handling.