Class Tcp
- java.lang.Object
-
- akka.stream.javadsl.Tcp
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Tcp.IncomingConnection
Represents an accepted incoming TCP connection.static class
Tcp.OutgoingConnection
Represents a prospective outgoing TCP connection.static class
Tcp.ServerBinding
Represents a prospective TCP server binding.
-
Constructor Summary
Constructors Constructor Description Tcp(ExtendedActorSystem system)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static T
apply(ActorSystem system)
static T
apply(ClassicActorSystemProvider system)
Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bind(java.lang.String interface_, int port)
Creates aTcp.ServerBinding
without specifying options.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bind(java.lang.String interface_, int port, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, java.util.Optional<java.time.Duration> idleTimeout)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bind(java.lang.String interface_, int port, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bind that takes a java.time.Duration parameter instead.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bindTls(java.lang.String interface_, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession)
Deprecated.Use bindWithTls that takes a SSLEngine factory instead.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bindTls(java.lang.String interface_, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bindWithTls that takes a SSLEngine factory instead.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bindWithTls(java.lang.String interface_, int port, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>>
bindWithTls(java.lang.String interface_, int port, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine, int backlog, java.lang.Iterable<Inet.SocketOption> options, java.util.Optional<java.time.Duration> idleTimeout, java.util.function.Function<javax.net.ssl.SSLSession,java.util.Optional<java.lang.Throwable>> verifySession, TLSClosing closing)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.static Tcp
createExtension(ExtendedActorSystem system)
static boolean
equals(java.lang.Object other)
static Tcp
get(ActorSystem system)
static Tcp
get(ClassicActorSystemProvider system)
static int
hashCode()
static Tcp$
lookup()
Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingConnection(java.lang.String host, int port)
Creates anTcp.OutgoingConnection
without specifying options.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingConnection(java.net.InetSocketAddress remoteAddress, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, java.util.Optional<java.time.Duration> connectTimeout, java.util.Optional<java.time.Duration> idleTimeout)
Creates anTcp.OutgoingConnection
instance representing a prospective TCP client connection to the given endpoint.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingConnection(java.net.InetSocketAddress remoteAddress, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration connectTimeout, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bind that takes a java.time.Duration parameter instead.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingConnectionWithTls(java.net.InetSocketAddress remoteAddress, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine)
Creates anTcp.OutgoingConnection
with TLS.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingConnectionWithTls(java.net.InetSocketAddress remoteAddress, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, java.util.Optional<java.time.Duration> connectTimeout, java.util.Optional<java.time.Duration> idleTimeout, java.util.function.Function<javax.net.ssl.SSLSession,java.util.Optional<java.lang.Throwable>> verifySession, TLSClosing closing)
Creates anTcp.OutgoingConnection
with TLS.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingTlsConnection(java.lang.String host, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession)
Deprecated.Use outgoingConnectionWithTls that takes a SSLEngine factory instead.Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>>
outgoingTlsConnection(java.net.InetSocketAddress remoteAddress, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, scala.concurrent.duration.Duration connectTimeout, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use outgoingConnectionWithTls that takes a SSLEngine factory instead.
-
-
-
Constructor Detail
-
Tcp
public Tcp(ExtendedActorSystem system)
-
-
Method Detail
-
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(java.lang.Object other)
-
bind
public Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bind(java.lang.String interface_, int port, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, java.util.Optional<java.time.Duration> idleTimeout)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
.Please note that the startup of the server is asynchronous, i.e. after materializing the enclosing
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 onport
- The port to listen onbacklog
- Controls the size of the connection backlogoptions
- TCP options for the connections, seeTcp
for detailshalfClose
- 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,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bind(java.lang.String interface_, int port, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bind that takes a java.time.Duration parameter instead. Since 2.6.0.Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
.Please note that the startup of the server is asynchronous, i.e. after materializing the enclosing
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 onport
- The port to listen onbacklog
- Controls the size of the connection backlogoptions
- TCP options for the connections, seeTcp
for detailshalfClose
- 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,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bind(java.lang.String interface_, int port)
Creates aTcp.ServerBinding
without specifying options. It represents a prospective TCP server binding on the givenendpoint
.Please note that the startup of the server is asynchronous, i.e. after materializing the enclosing
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,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingConnection(java.net.InetSocketAddress remoteAddress, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, java.util.Optional<java.time.Duration> connectTimeout, java.util.Optional<java.time.Duration> idleTimeout)
Creates anTcp.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 tolocalAddress
- Optional local address for the connectionoptions
- TCP options for the connections, seeTcp
for detailshalfClose
- 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,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingConnection(java.net.InetSocketAddress remoteAddress, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration connectTimeout, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bind that takes a java.time.Duration parameter instead. Since 2.6.0.Creates anTcp.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 tolocalAddress
- Optional local address for the connectionoptions
- TCP options for the connections, seeTcp
for detailshalfClose
- 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,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingConnection(java.lang.String host, int port)
Creates anTcp.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.
-
outgoingTlsConnection
public Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingTlsConnection(java.lang.String host, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession)
Deprecated.Use outgoingConnectionWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters. Since 2.6.0.Creates anTcp.OutgoingConnection
with TLS. The returned flow represents a TCP client connection to the given endpoint where all bytes in and out go through TLS.- See Also:
Tcp.outgoingConnection
-
outgoingTlsConnection
public Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingTlsConnection(java.net.InetSocketAddress remoteAddress, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, scala.concurrent.duration.Duration connectTimeout, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use outgoingConnectionWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters. Since 2.6.0.Creates anTcp.OutgoingConnection
with TLS. The returned flow represents a TCP client connection to the given endpoint where all bytes in and out go through TLS.- See Also:
Marked API-may-change to leave room for an improvement around the very long parameter list.
-
outgoingConnectionWithTls
public Flow<ByteString,ByteString,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingConnectionWithTls(java.net.InetSocketAddress remoteAddress, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine)
Creates anTcp.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,java.util.concurrent.CompletionStage<Tcp.OutgoingConnection>> outgoingConnectionWithTls(java.net.InetSocketAddress remoteAddress, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine, java.util.Optional<java.net.InetSocketAddress> localAddress, java.lang.Iterable<Inet.SocketOption> options, java.util.Optional<java.time.Duration> connectTimeout, java.util.Optional<java.time.Duration> idleTimeout, java.util.function.Function<javax.net.ssl.SSLSession,java.util.Optional<java.lang.Throwable>> verifySession, TLSClosing closing)
Creates anTcp.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
-
bindTls
public Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bindTls(java.lang.String interface_, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean halfClose, scala.concurrent.duration.Duration idleTimeout)
Deprecated.Use bindWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters. Since 2.6.0.Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.- See Also:
Marked API-may-change to leave room for an improvement around the very long parameter list. Note: the half close parameter is currently ignored
-
bindTls
public Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bindTls(java.lang.String interface_, int port, javax.net.ssl.SSLContext sslContext, TLSProtocol.NegotiateNewSession negotiateNewSession)
Deprecated.Use bindWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters. Since 2.6.0.Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.- See Also:
Tcp.bind
-
bindWithTls
public Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bindWithTls(java.lang.String interface_, int port, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.- See Also:
Tcp.bind
-
bindWithTls
public Source<Tcp.IncomingConnection,java.util.concurrent.CompletionStage<Tcp.ServerBinding>> bindWithTls(java.lang.String interface_, int port, java.util.function.Supplier<javax.net.ssl.SSLEngine> createSSLEngine, int backlog, java.lang.Iterable<Inet.SocketOption> options, java.util.Optional<java.time.Duration> idleTimeout, java.util.function.Function<javax.net.ssl.SSLSession,java.util.Optional<java.lang.Throwable>> verifySession, TLSClosing closing)
Creates aTcp.ServerBinding
instance which represents a prospective TCP server binding on the givenendpoint
where all incoming and outgoing bytes are passed through TLS.- See Also:
Tcp.bind
-
-