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
  • Constructor Details

    • JettyWebSocketClient

      public JettyWebSocketClient()
      Default constructor that creates an instance of WebSocketClient.
    • JettyWebSocketClient

      public JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient client)
      Constructor that accepts an existing WebSocketClient instance.
  • Method Details

    • setTaskExecutor

      public void setTaskExecutor(@Nullable org.springframework.core.task.AsyncListenableTaskExecutor taskExecutor)
      Set an AsyncListenableTaskExecutor to use when opening connections. If this property is set to null, calls to any of the doHandshake methods will block until the connection is established.

      By default an instance of SimpleAsyncTaskExecutor is used.

    • getTaskExecutor

      @Nullable public org.springframework.core.task.AsyncListenableTaskExecutor getTaskExecutor()
      Return the configured TaskExecutor.
    • start

      public void start()
      Specified by:
      start in interface org.springframework.context.Lifecycle
    • stop

      public void stop()
      Specified by:
      stop in interface org.springframework.context.Lifecycle
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface org.springframework.context.Lifecycle
    • doHandshake

      public org.springframework.util.concurrent.ListenableFuture<WebSocketSession> doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVars)
      Specified by:
      doHandshake in interface WebSocketClient
      Overrides:
      doHandshake in class AbstractWebSocketClient
    • doHandshakeInternal

      public org.springframework.util.concurrent.ListenableFuture<WebSocketSession> doHandshakeInternal(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:
      doHandshakeInternal in class AbstractWebSocketClient
      Parameters:
      wsHandler - the client-side handler for WebSocket messages
      headers - the 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 list
      extensions - requested WebSocket extensions, or an empty list
      attributes - the attributes to associate with the WebSocketSession, i.e. via WebSocketSession.getAttributes(); currently always an empty map.
      Returns:
      the established WebSocket session wrapped in a ListenableFuture.
    • getUser

      @Nullable protected Principal getUser()
      Return the user to make available through WebSocketSession.getPrincipal(). By default this method returns null