Class Tcp

java.lang.Object
org.apache.pekko.stream.javadsl.Tcp
All Implemented Interfaces:
Extension

public class Tcp extends Object implements Extension
  • Constructor Details

  • Method Details

    • get

      public static Tcp get(ActorSystem system)
    • get

      public static Tcp get(ClassicActorSystemProvider system)
    • lookup

      public static Tcp$ lookup()
    • createExtension

      public static Tcp createExtension(ExtendedActorSystem system)
    • apply

      public static T apply(ActorSystem system)
    • apply

      public static T apply(ClassicActorSystemProvider system)
    • hashCode

      public static final int hashCode()
    • equals

      public static final boolean equals(Object other)
    • bind

      public Source<Tcp.IncomingConnection,CompletionStage<Tcp.ServerBinding>> bind(String interface_, int port, int backlog, Iterable<Inet.SocketOption> options, boolean halfClose, Optional<Duration> idleTimeout)
      Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint.

      Please note that the startup of the server is asynchronous, i.e. after materializing the enclosing pekko.stream.scaladsl.RunnableGraph the server is not immediately available. Only after the materialized future completes is the server ready to accept client connections.

      Parameters:
      interface - The interface to listen on
      port - The port to listen on
      backlog - Controls the size of the connection backlog
      options - TCP options for the connections, see pekko.io.Tcp for details
      halfClose - Controls whether the connection is kept open even after writing has been completed to the accepted TCP connections. If set to true, the connection will implement the TCP half-close mechanism, allowing the client to write to the connection even after the server has finished writing. The TCP socket is only closed after both the client and server finished writing. If set to false, the connection will immediately closed once the server closes its write side, independently whether the client is still attempting to write. This setting is recommended for servers, and therefore it is the default setting.
    • bind

      public Source<Tcp.IncomingConnection,CompletionStage<Tcp.ServerBinding>> bind(String interface_, int port)
      Creates a Tcp.ServerBinding without specifying options. It represents a prospective TCP server binding on the given endpoint.

      Please note that the startup of the server is asynchronous, i.e. after materializing the enclosing pekko.stream.scaladsl.RunnableGraph the server is not immediately available. Only after the materialized future completes is the server ready to accept client connections.

    • outgoingConnection

      public Flow<ByteString,ByteString,CompletionStage<Tcp.OutgoingConnection>> outgoingConnection(InetSocketAddress remoteAddress, Optional<InetSocketAddress> localAddress, Iterable<Inet.SocketOption> options, boolean halfClose, Optional<Duration> connectTimeout, Optional<Duration> idleTimeout)
      Creates an Tcp.OutgoingConnection instance representing a prospective TCP client connection to the given endpoint.

      Note that the ByteString chunk boundaries are not retained across the network, to achieve application level chunks you have to introduce explicit framing in your streams, for example using the Framing operators.

      Parameters:
      remoteAddress - The remote address to connect to
      localAddress - Optional local address for the connection
      options - TCP options for the connections, see pekko.io.Tcp for details
      halfClose - Controls whether the connection is kept open even after writing has been completed to the accepted TCP connections. If set to true, the connection will implement the TCP half-close mechanism, allowing the server to write to the connection even after the client has finished writing. The TCP socket is only closed after both the client and server finished writing. This setting is recommended for clients and therefore it is the default setting. If set to false, the connection will immediately closed once the client closes its write side, independently whether the server is still attempting to write.
    • outgoingConnection

      public Flow<ByteString,ByteString,CompletionStage<Tcp.OutgoingConnection>> outgoingConnection(String host, int port)
      Creates an Tcp.OutgoingConnection without specifying options. It represents a prospective TCP client connection to the given endpoint.

      Note that the ByteString chunk boundaries are not retained across the network, to achieve application level chunks you have to introduce explicit framing in your streams, for example using the Framing operators.

    • outgoingConnectionWithTls

      public Flow<ByteString,ByteString,CompletionStage<Tcp.OutgoingConnection>> outgoingConnectionWithTls(InetSocketAddress remoteAddress, Creator<SSLEngine> createSSLEngine)
      Creates an Tcp.OutgoingConnection with TLS. The returned flow represents a TCP client connection to the given endpoint where all bytes in and out go through TLS.

      You specify a factory to create an SSLEngine that must already be configured for client mode and with all the parameters for the first session.

      See Also:
      • Tcp.outgoingConnection
    • outgoingConnectionWithTls

      public Flow<ByteString,ByteString,CompletionStage<Tcp.OutgoingConnection>> outgoingConnectionWithTls(InetSocketAddress remoteAddress, Creator<SSLEngine> createSSLEngine, Optional<InetSocketAddress> localAddress, Iterable<Inet.SocketOption> options, Optional<Duration> connectTimeout, Optional<Duration> idleTimeout, Function<SSLSession,Optional<Throwable>> verifySession, TLSClosing closing)
      Creates an Tcp.OutgoingConnection with TLS. The returned flow represents a TCP client connection to the given endpoint where all bytes in and out go through TLS.

      You specify a factory to create an SSLEngine that must already be configured for client mode and with all the parameters for the first session.

      See Also:
      • Tcp.outgoingConnection
    • bindWithTls

      public Source<Tcp.IncomingConnection,CompletionStage<Tcp.ServerBinding>> bindWithTls(String interface_, int port, Creator<SSLEngine> createSSLEngine)
      Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint where all incoming and outgoing bytes are passed through TLS.

      See Also:
      • Tcp.bind
    • bindWithTls

      public Source<Tcp.IncomingConnection,CompletionStage<Tcp.ServerBinding>> bindWithTls(String interface_, int port, Creator<SSLEngine> createSSLEngine, int backlog, Iterable<Inet.SocketOption> options, Optional<Duration> idleTimeout, Function<SSLSession,Optional<Throwable>> verifySession, TLSClosing closing)
      Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint where all incoming and outgoing bytes are passed through TLS.

      See Also:
      • Tcp.bind