Class StandardWebSocketClient
- java.lang.Object
- org.springframework.web.socket.client.AbstractWebSocketClient
- org.springframework.web.socket.client.standard.StandardWebSocketClient
- All Implemented Interfaces:
WebSocketClient
public class StandardWebSocketClient extends AbstractWebSocketClient
A WebSocketClient based on standard Java WebSocket API.- Since:
- 4.0
- Author:
- Rossen Stoyanchev
Field Summary
Fields inherited from class org.springframework.web.socket.client.AbstractWebSocketClient
logger
Constructor Summary
Constructors Constructor Description StandardWebSocketClient()
Default constructor that callsContainerProvider.getWebSocketContainer()
to obtain a (new)WebSocketContainer
instance.StandardWebSocketClient(WebSocketContainer webSocketContainer)
Constructor accepting an existingWebSocketContainer
instance.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ListenableFuture<WebSocketSession>
doHandshakeInternal(WebSocketHandler webSocketHandler, 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.AsyncListenableTaskExecutor
getTaskExecutor()
Return the configuredTaskExecutor
.Map<String,Object>
getUserProperties()
The configured user properties.void
setTaskExecutor(AsyncListenableTaskExecutor taskExecutor)
Set anAsyncListenableTaskExecutor
to use when opening connections.void
setUserProperties(Map<String,Object> userProperties)
The standard Java WebSocket API allows passing "user properties" to the server viauserProperties
.Methods inherited from class org.springframework.web.socket.client.AbstractWebSocketClient
assertUri, doHandshake, doHandshake
Constructor Detail
StandardWebSocketClient
public StandardWebSocketClient()
Default constructor that callsContainerProvider.getWebSocketContainer()
to obtain a (new)WebSocketContainer
instance. Also see constructor accepting existingWebSocketContainer
instance.
StandardWebSocketClient
public StandardWebSocketClient(WebSocketContainer webSocketContainer)
Constructor accepting an existingWebSocketContainer
instance.For XML configuration, see
WebSocketContainerFactoryBean
. For Java configuration, useContainerProvider.getWebSocketContainer()
to obtain theWebSocketContainer
instance.
Method Detail
setUserProperties
public void setUserProperties(@Nullable Map<String,Object> userProperties)
The standard Java WebSocket API allows passing "user properties" to the server viauserProperties
. Use this property to configure one or more properties to be passed on every handshake.
getUserProperties
public Map<String,Object> getUserProperties()
The configured user properties.
setTaskExecutor
public void setTaskExecutor(@Nullable AsyncListenableTaskExecutor taskExecutor)
Set anAsyncListenableTaskExecutor
to use when opening connections. If this property is set tonull
, calls to any of thedoHandshake
methods will block until the connection is established.By default, an instance of
SimpleAsyncTaskExecutor
is used.
getTaskExecutor
@Nullable public AsyncListenableTaskExecutor getTaskExecutor()
Return the configuredTaskExecutor
.
doHandshakeInternal
protected ListenableFuture<WebSocketSession> doHandshakeInternal(WebSocketHandler webSocketHandler, 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:
doHandshakeInternal
in classAbstractWebSocketClient
- Parameters:
webSocketHandler
- 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 ListenableFuture.