Class UndertowWebSocketClient

java.lang.Object
org.springframework.web.reactive.socket.client.UndertowWebSocketClient
All Implemented Interfaces:
WebSocketClient

public class UndertowWebSocketClient extends Object implements WebSocketClient
Undertow based implementation of WebSocketClient.
Since:
5.0
Author:
Violeta Georgieva, Rossen Stoyanchev
  • Constructor Summary

    Constructors
    Constructor
    Description
    UndertowWebSocketClient(org.xnio.XnioWorker worker)
    Constructor with the XnioWorker to pass to WebSocketClient.connectionBuilder(org.xnio.XnioWorker, io.undertow.connector.ByteBufferPool, java.net.URI).
    UndertowWebSocketClient(org.xnio.XnioWorker worker, io.undertow.connector.ByteBufferPool byteBufferPool, Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder> builderConsumer)
    Alternate constructor providing additional control over the WebSocketClient.ConnectionBuilder for each WebSocket connection.
    UndertowWebSocketClient(org.xnio.XnioWorker worker, Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder> builderConsumer)
    Alternate constructor providing additional control over the WebSocketClient.ConnectionBuilder for each WebSocket connection.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected io.undertow.websockets.client.WebSocketClient.ConnectionBuilder
    Create a WebSocketClient.ConnectionBuilder for the given URI.
    reactor.core.publisher.Mono<Void>
    execute(URI url, 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.
    io.undertow.connector.ByteBufferPool
    Return the ByteBufferPool currently used for newly created WebSocket sessions by this client.
    Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder>
    Return the configured Consumer<ConnectionBuilder>.
    org.xnio.XnioWorker
    Return the configured XnioWorker.
    void
    setByteBufferPool(io.undertow.connector.ByteBufferPool byteBufferPool)
    Set the ByteBufferPool to pass to WebSocketClient.connectionBuilder(org.xnio.XnioWorker, io.undertow.connector.ByteBufferPool, java.net.URI).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • UndertowWebSocketClient

      public UndertowWebSocketClient(org.xnio.XnioWorker worker)
      Constructor with the XnioWorker to pass to WebSocketClient.connectionBuilder(org.xnio.XnioWorker, io.undertow.connector.ByteBufferPool, java.net.URI).
      Parameters:
      worker - the Xnio worker
    • UndertowWebSocketClient

      public UndertowWebSocketClient(org.xnio.XnioWorker worker, Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder> builderConsumer)
      Alternate constructor providing additional control over the WebSocketClient.ConnectionBuilder for each WebSocket connection.
      Parameters:
      worker - the Xnio worker to use to create ConnectionBuilder's
      builderConsumer - a consumer to configure ConnectionBuilder's
    • UndertowWebSocketClient

      public UndertowWebSocketClient(org.xnio.XnioWorker worker, io.undertow.connector.ByteBufferPool byteBufferPool, Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder> builderConsumer)
      Alternate constructor providing additional control over the WebSocketClient.ConnectionBuilder for each WebSocket connection.
      Parameters:
      worker - the Xnio worker to use to create ConnectionBuilder's
      byteBufferPool - the ByteBufferPool to use to create ConnectionBuilder's
      builderConsumer - a consumer to configure ConnectionBuilder's
      Since:
      5.0.8
  • Method Details

    • getXnioWorker

      public org.xnio.XnioWorker getXnioWorker()
      Return the configured XnioWorker.
    • setByteBufferPool

      public void setByteBufferPool(io.undertow.connector.ByteBufferPool byteBufferPool)
      Set the ByteBufferPool to pass to WebSocketClient.connectionBuilder(org.xnio.XnioWorker, io.undertow.connector.ByteBufferPool, java.net.URI).

      By default an indirect DefaultByteBufferPool with a buffer size of 8192 is used.

      Since:
      5.0.8
      See Also:
      • DEFAULT_POOL_BUFFER_SIZE
    • getByteBufferPool

      public io.undertow.connector.ByteBufferPool getByteBufferPool()
      Return the ByteBufferPool currently used for newly created WebSocket sessions by this client.
      Returns:
      the byte buffer pool
      Since:
      5.0.8
    • getConnectionBuilderConsumer

      public Consumer<io.undertow.websockets.client.WebSocketClient.ConnectionBuilder> getConnectionBuilderConsumer()
      Return the configured Consumer<ConnectionBuilder>.
    • 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, 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.
    • createConnectionBuilder

      protected io.undertow.websockets.client.WebSocketClient.ConnectionBuilder createConnectionBuilder(URI url)
      Create a WebSocketClient.ConnectionBuilder for the given URI.

      The default implementation creates a builder with the configured XnioWorker and ByteBufferPool and then passes it to the consumer provided at construction time.