Class ReactorNetty2TcpClient<P>

java.lang.Object
org.springframework.messaging.tcp.reactor.ReactorNetty2TcpClient<P>
Type Parameters:
P - the type of payload for in and outbound messages
All Implemented Interfaces:
TcpOperations<P>

public class ReactorNetty2TcpClient<P> extends Object implements TcpOperations<P>
Reactor Netty based implementation of TcpOperations.

This class is based on ReactorNettyTcpClient.

Since:
6.0
Author:
Rossen Stoyanchev
  • Constructor Details

    • ReactorNetty2TcpClient

      public ReactorNetty2TcpClient(String host, int port, TcpMessageCodec<P> codec)
      Simple constructor with the host and port to use to connect to.

      This constructor manages the lifecycle of the TcpClient and underlying resources such as ConnectionProvider, LoopResources, and ChannelGroup.

      For full control over the initialization and lifecycle of the TcpClient, use ReactorNetty2TcpClient(TcpClient, TcpMessageCodec).

      Parameters:
      host - the host to connect to
      port - the port to connect to
      codec - for encoding and decoding the input/output byte streams
      See Also:
    • ReactorNetty2TcpClient

      public ReactorNetty2TcpClient(Function<reactor.netty5.tcp.TcpClient,reactor.netty5.tcp.TcpClient> clientConfigurer, TcpMessageCodec<P> codec)
      A variant of ReactorNetty2TcpClient(String, int, TcpMessageCodec) that still manages the lifecycle of the TcpClient and underlying resources, but allows for direct configuration of other properties of the client through a Function<TcpClient, TcpClient>.
      Parameters:
      clientConfigurer - the configurer function
      codec - for encoding and decoding the input/output byte streams
      Since:
      5.1.3
      See Also:
    • ReactorNetty2TcpClient

      public ReactorNetty2TcpClient(reactor.netty5.tcp.TcpClient tcpClient, TcpMessageCodec<P> codec)
      Constructor with an externally created TcpClient instance whose lifecycle is expected to be managed externally.
      Parameters:
      tcpClient - the TcpClient instance to use
      codec - for encoding and decoding the input/output byte streams
      See Also:
  • Method Details

    • setLogger

      public void setLogger(Log logger)
      Set an alternative logger to use than the one based on the class name.
      Parameters:
      logger - the logger to use
      Since:
      5.1
    • getLogger

      public Log getLogger()
      Return the currently configured Logger.
      Since:
      5.1
    • connectAsync

      public CompletableFuture<Void> connectAsync(TcpConnectionHandler<P> handler)
      Description copied from interface: TcpOperations
      Open a new connection.
      Specified by:
      connectAsync in interface TcpOperations<P>
      Parameters:
      handler - a handler to manage the connection
      Returns:
      a CompletableFuture that can be used to determine when and if the connection is successfully established
    • extendTcpClient

      protected reactor.netty5.tcp.TcpClient extendTcpClient(reactor.netty5.tcp.TcpClient tcpClient, TcpConnectionHandler<P> handler)
      Provides an opportunity to initialize the TcpClient for the given TcpConnectionHandler which may implement sub-interfaces such as StompTcpConnectionHandler that expose further information.
      Parameters:
      tcpClient - the candidate TcpClient
      handler - the handler for the TCP connection
      Returns:
      the same handler or an updated instance
    • connectAsync

      public CompletableFuture<Void> connectAsync(TcpConnectionHandler<P> handler, ReconnectStrategy strategy)
      Description copied from interface: TcpOperations
      Open a new connection and a strategy for reconnecting if the connection fails.
      Specified by:
      connectAsync in interface TcpOperations<P>
      Parameters:
      handler - a handler to manage the connection
      strategy - a strategy for reconnecting
      Returns:
      a CompletableFuture that can be used to determine when and if the initial connection is successfully established
    • shutdownAsync

      public CompletableFuture<Void> shutdownAsync()
      Description copied from interface: TcpOperations
      Shut down and close any open connections.
      Specified by:
      shutdownAsync in interface TcpOperations<P>
      Returns:
      a CompletableFuture that can be used to determine when and if the connection is successfully closed
    • toString

      public String toString()
      Overrides:
      toString in class Object