Class JettyWebSocketClient
java.lang.Object
org.springframework.web.socket.client.AbstractWebSocketClient
org.springframework.web.socket.client.jetty.JettyWebSocketClient
- All Implemented Interfaces:
org.springframework.context.Lifecycle
,WebSocketClient
public class JettyWebSocketClient
extends AbstractWebSocketClient
implements org.springframework.context.Lifecycle
Initiates WebSocket requests to a WebSocket server programmatically
through the Jetty WebSocket API.
As of 4.1 this class implements Lifecycle
rather than
SmartLifecycle
. Use
WebSocketConnectionManager
instead to auto-start a WebSocket connection.
- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller
-
Field Summary
Fields inherited from class org.springframework.web.socket.client.AbstractWebSocketClient
logger
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor that creates an instance ofWebSocketClient
.JettyWebSocketClient
(org.eclipse.jetty.websocket.client.WebSocketClient client) Constructor that accepts an existingWebSocketClient
instance. -
Method Summary
Modifier and TypeMethodDescriptionexecuteInternal
(WebSocketHandler wsHandler, org.springframework.http.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.org.springframework.core.task.AsyncTaskExecutor
Return the configuredAsyncTaskExecutor
.protected Principal
getUser()
Return the user to make available throughWebSocketSession.getPrincipal()
.boolean
void
setTaskExecutor
(org.springframework.core.task.AsyncTaskExecutor taskExecutor) Set anAsyncTaskExecutor
to use when opening connections.void
start()
void
stop()
Methods inherited from class org.springframework.web.socket.client.AbstractWebSocketClient
assertUri, doHandshakeInternal, execute, execute
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.socket.client.WebSocketClient
doHandshake, doHandshake
-
Constructor Details
-
JettyWebSocketClient
public JettyWebSocketClient()Default constructor that creates an instance ofWebSocketClient
. -
JettyWebSocketClient
public JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient client) Constructor that accepts an existingWebSocketClient
instance.
-
-
Method Details
-
setTaskExecutor
public void setTaskExecutor(@Nullable org.springframework.core.task.AsyncTaskExecutor taskExecutor) Set anAsyncTaskExecutor
to use when opening connections.If this property is set to
null
, calls to any of thedoHandshake
methods will block until the connection is established.By default an instance of
SimpleAsyncTaskExecutor
is used. -
getTaskExecutor
@Nullable public org.springframework.core.task.AsyncTaskExecutor getTaskExecutor()Return the configuredAsyncTaskExecutor
. -
start
public void start()- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
-
stop
public void stop()- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunning
in interfaceorg.springframework.context.Lifecycle
-
executeInternal
public CompletableFuture<WebSocketSession> executeInternal(WebSocketHandler wsHandler, org.springframework.http.HttpHeaders headers, URI uri, List<String> protocols, List<WebSocketExtension> extensions, Map<String, Object> attributes) Description copied from class:AbstractWebSocketClient
Perform the actual handshake to establish a connection to the server.- Specified by:
executeInternal
in classAbstractWebSocketClient
- Parameters:
wsHandler
- the client-side handler for WebSocket messagesheaders
- the HTTP headers to use for the handshake, with unwanted (forbidden) headers filtered out (nevernull
)uri
- the target URI for the handshake (nevernull
)protocols
- requested sub-protocols, or an empty listextensions
- requested WebSocket extensions, or an empty listattributes
- the attributes to associate with the WebSocketSession, i.e. viaWebSocketSession.getAttributes()
; currently always an empty map- Returns:
- the established WebSocket session wrapped in a
CompletableFuture
.
-
getUser
Return the user to make available throughWebSocketSession.getPrincipal()
. By default, this method returnsnull
-