public class JettyWebSocketClient extends AbstractWebSocketClient implements SmartLifecycle
logger
Constructor and Description |
---|
JettyWebSocketClient()
Default constructor that creates an instance of
WebSocketClient . |
JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient client)
Constructor that accepts an existing
WebSocketClient instance. |
Modifier and Type | Method and Description |
---|---|
ListenableFuture<WebSocketSession> |
doHandshake(WebSocketHandler webSocketHandler,
String uriTemplate,
Object... uriVars) |
ListenableFuture<WebSocketSession> |
doHandshakeInternal(WebSocketHandler wsHandler,
HttpHeaders headers,
URI uri,
List<String> protocols,
List<WebSocketExtension> extensions,
Map<String,Object> attributes)
Perform the actual handshake to establish a connection to the server.
|
int |
getPhase()
Return the phase value of this object.
|
AsyncListenableTaskExecutor |
getTaskExecutor()
Return the configured
TaskExecutor . |
protected Principal |
getUser() |
boolean |
isAutoStartup()
Return whether this Lifecycle component should be started automatically
by the container when the ApplicationContext is refreshed.
|
boolean |
isRunning()
Check whether this component is currently running.
|
void |
setAutoStartup(boolean autoStartup) |
void |
setPhase(int phase) |
void |
setTaskExecutor(AsyncListenableTaskExecutor taskExecutor)
Set an
AsyncListenableTaskExecutor to use when opening connections. |
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.
|
void |
stop(Runnable callback)
Indicates that a Lifecycle component must stop if it is currently running.
|
doHandshake
public JettyWebSocketClient()
WebSocketClient
.public JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient client)
WebSocketClient
instance.public void setTaskExecutor(AsyncListenableTaskExecutor taskExecutor)
AsyncListenableTaskExecutor
to use when opening connections.
If this property is not configured, calls to any of the
doHandshake
methods will block until the connection is established.
public AsyncListenableTaskExecutor getTaskExecutor()
TaskExecutor
.public void setAutoStartup(boolean autoStartup)
public boolean isAutoStartup()
SmartLifecycle
isAutoStartup
in interface SmartLifecycle
public void setPhase(int phase)
public int getPhase()
Phased
public boolean isRunning()
Lifecycle
In the case of a container, this will return true
only if all components that apply are currently running.
public void start()
Lifecycle
In the case of a container, this will propagate the start signal to all components that apply.
public void stop()
Lifecycle
SmartLifecycle
and its stop(Runnable)
variant in cases where asynchronous stop behavior is necessary.
Should not throw an exception if the component isn't 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)
public void stop(Runnable callback)
SmartLifecycle
The provided callback is used by the LifecycleProcessor
to support an
ordered, and potentially concurrent, shutdown of all components having a
common shutdown order value. The callback must be executed after
the SmartLifecycle component does indeed stop.
The LifecycleProcessor
will call only this variant of the
stop
method; i.e. Lifecycle.stop()
will not be called for
SmartLifecycle
implementations unless explicitly delegated to within
this method.
stop
in interface SmartLifecycle
public ListenableFuture<WebSocketSession> doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVars)
doHandshake
in interface WebSocketClient
doHandshake
in class AbstractWebSocketClient
public ListenableFuture<WebSocketSession> doHandshakeInternal(WebSocketHandler wsHandler, HttpHeaders headers, URI uri, List<String> protocols, List<WebSocketExtension> extensions, Map<String,Object> attributes)
AbstractWebSocketClient
doHandshakeInternal
in class AbstractWebSocketClient
wsHandler
- the client-side handler for WebSocket messagesheaders
- HTTP headers to use for the handshake, with unwanted (forbidden)
headers filtered out, never null
uri
- the target URI for the handshake, never null
protocols
- requested sub-protocols, or an empty listextensions
- requested WebSocket extensions, or an empty listattributes
- attributes to associate with the WebSocketSession, i.e. via
WebSocketSession.getAttributes()
; currently always an empty map.protected Principal getUser()
WebSocketSession.getPrincipal()
;
by default this method returns null