org.springframework.web.reactive.socket.client

## Class JettyWebSocketClient

- java.lang.Object
- - org.springframework.web.reactive.socket.client.JettyWebSocketClient

All Implemented Interfaces:
  org.springframework.context.Lifecycle, WebSocketClient

    public class JettyWebSocketClient
    extends Object
    implements WebSocketClient, org.springframework.context.Lifecycle

A `WebSocketClient` implementation for use with Jetty `WebSocketClient`.

Note: the Jetty `WebSocketClient` requires lifecycle management and must be started and stopped. This is automatically managed when this class is declared as a Spring bean and created with the default constructor. See constructor notes for more details.

Since:
  5.0
Author:
  Violeta Georgieva, Rossen Stoyanchev

### Constructor Summary

Constructors
Constructor and Description
`JettyWebSocketClient()` Default constructor that creates and manages an instance of a Jetty `WebSocketClient`.
`JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient jettyClient)` Constructor that accepts an existing instance of a Jetty `WebSocketClient`.

### Method Summary

All Methods Instance Methods Concrete Methods
`reactor.core.publisher.Mono<Void>` `execute(URI url, org.springframework.http.HttpHeaders headers, WebSocketHandler handler)` A variant of `WebSocketClient.execute(URI, WebSocketHandler)` with custom headers.
`reactor.core.publisher.Mono<Void>` `execute(URI url, WebSocketHandler handler)` Execute a handshake request to the given url and handle the resulting WebSocket session with the given handler.
`org.eclipse.jetty.websocket.client.WebSocketClient` `getJettyClient()` Return the underlying Jetty `WebSocketClient`.
`boolean` `isRunning()`
`void` `start()`
`void` `stop()`

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

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

### Constructor Detail

#### JettyWebSocketClient

    public JettyWebSocketClient()

Default constructor that creates and manages an instance of a Jetty `WebSocketClient`. The instance can be obtained with `getJettyClient()` for further configuration.

Note: When this constructor is used `Lifecycle` methods of this class are delegated to the Jetty `WebSocketClient`.

#### JettyWebSocketClient

    public JettyWebSocketClient(org.eclipse.jetty.websocket.client.WebSocketClient jettyClient)

Constructor that accepts an existing instance of a Jetty `WebSocketClient`.

Note: Use of this constructor implies the Jetty `WebSocketClient` is externally managed and hence `Lifecycle` methods of this class are not delegated to it.

### Method Detail

#### getJettyClient

    public org.eclipse.jetty.websocket.client.WebSocketClient getJettyClient()

Return the underlying Jetty `WebSocketClient`.

#### 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`

#### execute

    public reactor.core.publisher.Mono<Void> execute(URI url,
                                                     WebSocketHandler handler)

Description copied from interface: `WebSocketClient`
Execute a handshake request to the given url and handle the resulting WebSocket session with the given handler.

Specified by:
  `execute` in interface `WebSocketClient`
Parameters:
  `url` - the handshake url
  `handler` - the handler of the WebSocket session
Returns:
  completion `Mono<Void>` to indicate the outcome of the WebSocket session handling.

#### execute

    public reactor.core.publisher.Mono<Void> execute(URI url,
                                                     org.springframework.http.HttpHeaders headers,
                                                     WebSocketHandler handler)

Description copied from interface: `WebSocketClient`
A variant of `WebSocketClient.execute(URI, WebSocketHandler)` with custom headers.

Specified by:
  `execute` in interface `WebSocketClient`
Parameters:
  `url` - the handshake url
  `headers` - custom headers for the handshake request
  `handler` - the handler of the WebSocket session
Returns:
  completion `Mono<Void>` to indicate the outcome of the WebSocket session handling.