org.springframework.web.socket.client

## Class AbstractWebSocketClient

- java.lang.Object
- - org.springframework.web.socket.client.AbstractWebSocketClient

- All Implemented Interfaces:
    WebSocketClient
  Direct Known Subclasses:
    JettyWebSocketClient, StandardWebSocketClient

      public abstract class AbstractWebSocketClient
      extends Object
      implements WebSocketClient

  Abstract base class for `WebSocketClient` implementations.
  Since:
    4.0
  Author:
    Rossen Stoyanchev

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractWebSocketClient()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ListenableFuture<WebSocketSession>` | `doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVars)`
    `ListenableFuture<WebSocketSession>` | `doHandshake(WebSocketHandler webSocketHandler, WebSocketHttpHeaders headers, URI uri)`
    `protected abstract ListenableFuture<WebSocketSession>` | `doHandshakeInternal(WebSocketHandler webSocketHandler, HttpHeaders headers, URI uri, List<String> subProtocols, List<WebSocketExtension> extensions, Map<String,Object> attributes)` Perform the actual handshake to establish a connection to the server.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected final Log logger

  - ### Constructor Detail

    - #### AbstractWebSocketClient

          public AbstractWebSocketClient()

  - ### Method Detail

    - #### doHandshake

          public ListenableFuture<WebSocketSession> doHandshake(WebSocketHandler webSocketHandler,
                                                                String uriTemplate,
                                                                Object... uriVars)

      Specified by:
        `doHandshake` in interface `WebSocketClient`

    - #### doHandshake

          public final ListenableFuture<WebSocketSession> doHandshake(WebSocketHandler webSocketHandler,
                                                                      WebSocketHttpHeaders headers,
                                                                      URI uri)

      Specified by:
        `doHandshake` in interface `WebSocketClient`

    - #### doHandshakeInternal

          protected abstract ListenableFuture<WebSocketSession> doHandshakeInternal(WebSocketHandler webSocketHandler,
                                                                                    HttpHeaders headers,
                                                                                    URI uri,
                                                                                    List<String> subProtocols,
                                                                                    List<WebSocketExtension> extensions,
                                                                                    Map<String,Object> attributes)

      Perform the actual handshake to establish a connection to the server.
      Parameters:
        `webSocketHandler` - the client-side handler for WebSocket messages
        `headers` - HTTP headers to use for the handshake, with unwanted (forbidden) headers filtered out, never `null`
        `uri` - the target URI for the handshake, never `null`
        `subProtocols` - requested sub-protocols, or an empty list
        `extensions` - requested WebSocket extensions, or an empty list
        `attributes` - 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.