## Uses of Interface
org.springframework.web.socket.WebSocketSession

- Packages that use WebSocketSession
  Package | Description
  --- | ---
  org.springframework.web.socket | Common abstractions and Spring configuration support for WebSocket applications.
  org.springframework.web.socket.adapter | Classes adapting Spring's WebSocket API to and from WebSocket providers.
  org.springframework.web.socket.adapter.jetty | Adapter classes for the Jetty WebSocket API.
  org.springframework.web.socket.adapter.standard | Adapter classes for the standard Java WebSocket API.
  org.springframework.web.socket.client | Client-side abstractions for WebSocket applications.
  org.springframework.web.socket.client.jetty | Client-side support for the Jetty WebSocket API.
  org.springframework.web.socket.client.standard | Client-side classes for use with standard Java WebSocket endpoints.
  org.springframework.web.socket.handler | Convenient `WebSocketHandler` implementations and decorators.
  org.springframework.web.socket.messaging | WebSocket integration for Spring's messaging module.
  org.springframework.web.socket.sockjs.client | SockJS client implementation of `WebSocketClient`.
  org.springframework.web.socket.sockjs.transport | Server-side support for SockJS transports including `TransportHandler` implementations for processing incoming requests, their `session` counterparts for sending messages over the various transports, and `DefaultSockJsService`.
  org.springframework.web.socket.sockjs.transport.handler | `TransportHandler` implementation classes as well as a concrete `SockJsService`.
  org.springframework.web.socket.sockjs.transport.session | SockJS specific implementations of `WebSocketSession`.

- - ### Uses of WebSocketSession in org.springframework.web.socket

    Methods in org.springframework.web.socket with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | WebSocketHandler.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)` Invoked after the WebSocket connection has been closed by either side, or after a transport error has occurred.
    `void` | WebSocketHandler.`afterConnectionEstablished(WebSocketSession session)` Invoked after WebSocket negotiation has succeeded and the WebSocket connection is opened and ready for use.
    `void` | WebSocketHandler.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)` Invoked when a new WebSocket message arrives.
    `void` | WebSocketHandler.`handleTransportError(WebSocketSession session, Throwable exception)` Handle an error from the underlying WebSocket message transport.

  - ### Uses of WebSocketSession in org.springframework.web.socket.adapter

    Subinterfaces of WebSocketSession in org.springframework.web.socket.adapter
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `NativeWebSocketSession` A `WebSocketSession` that exposes the underlying, native WebSocketSession through a getter.

    Classes in org.springframework.web.socket.adapter that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractWebSocketSession<T>` An abstract base class for implementations of `WebSocketSession`.

  - ### Uses of WebSocketSession in org.springframework.web.socket.adapter.jetty

    Classes in org.springframework.web.socket.adapter.jetty that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `JettyWebSocketSession` A `WebSocketSession` for use with the Jetty 9.4 WebSocket API.

  - ### Uses of WebSocketSession in org.springframework.web.socket.adapter.standard

    Classes in org.springframework.web.socket.adapter.standard that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `StandardWebSocketSession` A `WebSocketSession` for use with the standard WebSocket for Java API.

  - ### Uses of WebSocketSession in org.springframework.web.socket.client

    Methods in org.springframework.web.socket.client that return types with arguments of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `ListenableFuture<WebSocketSession>` | WebSocketClient.`doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVariables)`
    `ListenableFuture<WebSocketSession>` | AbstractWebSocketClient.`doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVars)`
    `ListenableFuture<WebSocketSession>` | WebSocketClient.`doHandshake(WebSocketHandler webSocketHandler, WebSocketHttpHeaders headers, URI uri)`
    `ListenableFuture<WebSocketSession>` | AbstractWebSocketClient.`doHandshake(WebSocketHandler webSocketHandler, WebSocketHttpHeaders headers, URI uri)`
    `protected abstract ListenableFuture<WebSocketSession>` | AbstractWebSocketClient.`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.

  - ### Uses of WebSocketSession in org.springframework.web.socket.client.jetty

    Methods in org.springframework.web.socket.client.jetty that return types with arguments of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `ListenableFuture<WebSocketSession>` | JettyWebSocketClient.`doHandshake(WebSocketHandler webSocketHandler, String uriTemplate, Object... uriVars)`
    `ListenableFuture<WebSocketSession>` | JettyWebSocketClient.`doHandshakeInternal(WebSocketHandler wsHandler, HttpHeaders headers, URI uri, List<String> protocols, List<WebSocketExtension> extensions, Map<String,Object> attributes)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.client.standard

    Methods in org.springframework.web.socket.client.standard that return types with arguments of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `protected ListenableFuture<WebSocketSession>` | StandardWebSocketClient.`doHandshakeInternal(WebSocketHandler webSocketHandler, HttpHeaders headers, URI uri, List<String> protocols, List<WebSocketExtension> extensions, Map<String,Object> attributes)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.handler

    Classes in org.springframework.web.socket.handler that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ConcurrentWebSocketSessionDecorator` Wrap a `WebSocketSession` to guarantee only one thread can send messages at a time.
    `class` | `WebSocketSessionDecorator` Wraps another `WebSocketSession` instance and delegates to it.

    Methods in org.springframework.web.socket.handler that return WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `WebSocketSession` | WebSocketSessionDecorator.`getDelegate()`
    `WebSocketSession` | WebSocketSessionDecorator.`getLastSession()`
    `static WebSocketSession` | WebSocketSessionDecorator.`unwrap(WebSocketSession session)`

    Methods in org.springframework.web.socket.handler with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | ExceptionWebSocketHandlerDecorator.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)`
    `void` | PerConnectionWebSocketHandler.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)`
    `void` | LoggingWebSocketHandlerDecorator.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)`
    `void` | WebSocketHandlerDecorator.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)`
    `void` | AbstractWebSocketHandler.`afterConnectionClosed(WebSocketSession session, CloseStatus status)`
    `void` | ExceptionWebSocketHandlerDecorator.`afterConnectionEstablished(WebSocketSession session)`
    `void` | PerConnectionWebSocketHandler.`afterConnectionEstablished(WebSocketSession session)`
    `void` | LoggingWebSocketHandlerDecorator.`afterConnectionEstablished(WebSocketSession session)`
    `void` | WebSocketHandlerDecorator.`afterConnectionEstablished(WebSocketSession session)`
    `void` | AbstractWebSocketHandler.`afterConnectionEstablished(WebSocketSession session)`
    `protected void` | AbstractWebSocketHandler.`handleBinaryMessage(WebSocketSession session, BinaryMessage message)`
    `protected void` | TextWebSocketHandler.`handleBinaryMessage(WebSocketSession session, BinaryMessage message)`
    `void` | ExceptionWebSocketHandlerDecorator.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)`
    `void` | PerConnectionWebSocketHandler.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)`
    `void` | LoggingWebSocketHandlerDecorator.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)`
    `void` | WebSocketHandlerDecorator.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)`
    `void` | AbstractWebSocketHandler.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)`
    `protected void` | AbstractWebSocketHandler.`handlePongMessage(WebSocketSession session, PongMessage message)`
    `protected void` | BinaryWebSocketHandler.`handleTextMessage(WebSocketSession session, TextMessage message)`
    `protected void` | AbstractWebSocketHandler.`handleTextMessage(WebSocketSession session, TextMessage message)`
    `void` | ExceptionWebSocketHandlerDecorator.`handleTransportError(WebSocketSession session, Throwable exception)`
    `void` | PerConnectionWebSocketHandler.`handleTransportError(WebSocketSession session, Throwable exception)`
    `void` | LoggingWebSocketHandlerDecorator.`handleTransportError(WebSocketSession session, Throwable exception)`
    `void` | WebSocketHandlerDecorator.`handleTransportError(WebSocketSession session, Throwable exception)`
    `void` | AbstractWebSocketHandler.`handleTransportError(WebSocketSession session, Throwable exception)`
    `static void` | ExceptionWebSocketHandlerDecorator.`tryCloseWithError(WebSocketSession session, Throwable exception, Log logger)`
    `static WebSocketSession` | WebSocketSessionDecorator.`unwrap(WebSocketSession session)`

    Constructors in org.springframework.web.socket.handler with parameters of type WebSocketSession
    Constructor and Description
    `ConcurrentWebSocketSessionDecorator(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit)` Basic constructor.
    `ConcurrentWebSocketSessionDecorator(WebSocketSession delegate, int sendTimeLimit, int bufferSizeLimit, ConcurrentWebSocketSessionDecorator.OverflowStrategy overflowStrategy)` Constructor that also specifies the overflow strategy to use.
    `WebSocketSessionDecorator(WebSocketSession session)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.messaging

    Methods in org.springframework.web.socket.messaging that return WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `protected WebSocketSession` | SubProtocolWebSocketHandler.`decorateSession(WebSocketSession session)` Decorate the given `WebSocketSession`, if desired.

    Methods in org.springframework.web.socket.messaging with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | SubProtocolWebSocketHandler.`afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus)`
    `void` | SubProtocolWebSocketHandler.`afterConnectionEstablished(WebSocketSession session)`
    `void` | StompSubProtocolHandler.`afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel)`
    `void` | SubProtocolHandler.`afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel)` Invoked after a `WebSocketSession` has ended.
    `void` | StompSubProtocolHandler.`afterSessionStarted(WebSocketSession session, MessageChannel outputChannel)`
    `void` | SubProtocolHandler.`afterSessionStarted(WebSocketSession session, MessageChannel outputChannel)` Invoked after a `WebSocketSession` has started.
    `protected WebSocketSession` | SubProtocolWebSocketHandler.`decorateSession(WebSocketSession session)` Decorate the given `WebSocketSession`, if desired.
    `protected SubProtocolHandler` | SubProtocolWebSocketHandler.`findProtocolHandler(WebSocketSession session)` Find a `SubProtocolHandler` for the given session.
    `void` | SubProtocolWebSocketHandler.`handleMessage(WebSocketSession session, WebSocketMessage<?> message)` Handle an inbound message from a WebSocket client.
    `void` | StompSubProtocolHandler.`handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> webSocketMessage, MessageChannel outputChannel)` Handle incoming WebSocket messages from clients.
    `void` | SubProtocolHandler.`handleMessageFromClient(WebSocketSession session, WebSocketMessage<?> message, MessageChannel outputChannel)` Handle the given `WebSocketMessage` received from a client.
    `void` | StompSubProtocolHandler.`handleMessageToClient(WebSocketSession session, Message<?> message)` Handle STOMP messages going back out to WebSocket clients.
    `void` | SubProtocolHandler.`handleMessageToClient(WebSocketSession session, Message<?> message)` Handle the given `Message` to the client associated with the given WebSocket session.
    `void` | SubProtocolWebSocketHandler.`handleTransportError(WebSocketSession session, Throwable exception)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.sockjs.client

    Classes in org.springframework.web.socket.sockjs.client that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractClientSockJsSession` Base class for SockJS client implementations of `WebSocketSession`.
    `class` | `WebSocketClientSockJsSession` An extension of `AbstractClientSockJsSession` wrapping and delegating to an actual WebSocket session.
    `class` | `XhrClientSockJsSession` An extension of `AbstractClientSockJsSession` for use with HTTP transports simulating a WebSocket session.

    Methods in org.springframework.web.socket.sockjs.client that return types with arguments of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `ListenableFuture<WebSocketSession>` | AbstractXhrTransport.`connect(TransportRequest request, WebSocketHandler handler)`
    `ListenableFuture<WebSocketSession>` | Transport.`connect(TransportRequest request, WebSocketHandler webSocketHandler)` Connect the transport.
    `ListenableFuture<WebSocketSession>` | WebSocketTransport.`connect(TransportRequest request, WebSocketHandler handler)`
    `ListenableFuture<WebSocketSession>` | SockJsClient.`doHandshake(WebSocketHandler handler, String uriTemplate, Object... uriVars)`
    `ListenableFuture<WebSocketSession>` | SockJsClient.`doHandshake(WebSocketHandler handler, WebSocketHttpHeaders headers, URI url)`

    Methods in org.springframework.web.socket.sockjs.client with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | WebSocketClientSockJsSession.`initializeDelegateSession(WebSocketSession session)`

    Method parameters in org.springframework.web.socket.sockjs.client with type arguments of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | JettyXhrTransport.`connectInternal(TransportRequest transportRequest, WebSocketHandler handler, URI url, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture)`
    `protected abstract void` | AbstractXhrTransport.`connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture)`
    `protected void` | UndertowXhrTransport.`connectInternal(TransportRequest request, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture)`
    `protected void` | RestTemplateXhrTransport.`connectInternal(TransportRequest transportRequest, WebSocketHandler handler, URI receiveUrl, HttpHeaders handshakeHeaders, XhrClientSockJsSession session, SettableListenableFuture<WebSocketSession> connectFuture)`

    Constructor parameters in org.springframework.web.socket.sockjs.client with type arguments of type WebSocketSession
    Constructor and Description
    `AbstractClientSockJsSession(TransportRequest request, WebSocketHandler handler, SettableListenableFuture<WebSocketSession> connectFuture)`
    `WebSocketClientSockJsSession(TransportRequest request, WebSocketHandler handler, SettableListenableFuture<WebSocketSession> connectFuture)`
    `XhrClientSockJsSession(TransportRequest request, WebSocketHandler handler, XhrTransport transport, SettableListenableFuture<WebSocketSession> connectFuture)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.sockjs.transport

    Subinterfaces of WebSocketSession in org.springframework.web.socket.sockjs.transport
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `SockJsSession` SockJS extension of Spring's standard `WebSocketSession`.

  - ### Uses of WebSocketSession in org.springframework.web.socket.sockjs.transport.handler

    Methods in org.springframework.web.socket.sockjs.transport.handler with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | SockJsWebSocketHandler.`afterConnectionClosed(WebSocketSession wsSession, CloseStatus status)`
    `void` | SockJsWebSocketHandler.`afterConnectionEstablished(WebSocketSession wsSession)`
    `void` | SockJsWebSocketHandler.`handleTextMessage(WebSocketSession wsSession, TextMessage message)`
    `void` | SockJsWebSocketHandler.`handleTransportError(WebSocketSession webSocketSession, Throwable exception)`

  - ### Uses of WebSocketSession in org.springframework.web.socket.sockjs.transport.session

    Classes in org.springframework.web.socket.sockjs.transport.session that implement WebSocketSession
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractHttpSockJsSession` An abstract base class for use with HTTP transport SockJS sessions.
    `class` | `AbstractSockJsSession` An abstract base class for SockJS sessions implementing `SockJsSession`.
    `class` | `PollingSockJsSession` A SockJS session for use with polling HTTP transports.
    `class` | `StreamingSockJsSession` A SockJS session for use with streaming HTTP transports.
    `class` | `WebSocketServerSockJsSession` A SockJS session for use with the WebSocket transport.

    Methods in org.springframework.web.socket.sockjs.transport.session with parameters of type WebSocketSession
    Modifier and Type | Method and Description
    --- | ---
    `void` | WebSocketServerSockJsSession.`handleMessage(TextMessage message, WebSocketSession wsSession)`
    `void` | WebSocketServerSockJsSession.`initializeDelegateSession(WebSocketSession session)`