Packages

final class Tcp extends Extension

Source
Tcp.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Tcp
  2. Extension
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Tcp(system: ExtendedActorSystem)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from Tcp toany2stringadd[Tcp] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (Tcp, B)
    Implicit
    This member is added by an implicit conversion from Tcp toArrowAssoc[Tcp] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def bind(interface: String, port: Int, backlog: Int = defaultBacklog, options: Traversable[SocketOption] = Nil, halfClose: Boolean = false, idleTimeout: Duration = Duration.Inf): Source[IncomingConnection, Future[ServerBinding]]

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint.

    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.

    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.

  8. def bindAndHandle(handler: Flow[ByteString, ByteString, _], interface: String, port: Int, backlog: Int = defaultBacklog, options: Traversable[SocketOption] = Nil, halfClose: Boolean = false, idleTimeout: Duration = Duration.Inf)(implicit m: Materializer): Future[ServerBinding]

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint handling the incoming connections using the provided Flow.

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint handling the incoming connections using the provided Flow.

    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 returned future completes is the server ready to accept client connections.

    handler

    A Flow that represents the server logic

    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.

  9. def bindAndHandleWithTls(handler: Flow[ByteString, ByteString, _], interface: String, port: Int, createSSLEngine: () => SSLEngine, backlog: Int, options: Seq[SocketOption], idleTimeout: Duration, verifySession: (SSLSession) => Try[Unit], closing: TLSClosing)(implicit m: Materializer): Future[ServerBinding]

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint all incoming and outgoing bytes are passed through TLS and handling the incoming connections using the provided Flow.

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint all incoming and outgoing bytes are passed through TLS and handling the incoming connections using the provided Flow.

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

    See also

    Tcp.bindAndHandle

  10. def bindAndHandleWithTls(handler: Flow[ByteString, ByteString, _], interface: String, port: Int, createSSLEngine: () => SSLEngine)(implicit m: Materializer): Future[ServerBinding]

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint all incoming and outgoing bytes are passed through TLS and handling the incoming connections using the provided Flow.

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint all incoming and outgoing bytes are passed through TLS and handling the incoming connections using the provided Flow.

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

    See also

    Tcp.bindAndHandle

  11. val bindShutdownTimeout: FiniteDuration
  12. def bindWithTls(interface: String, port: Int, createSSLEngine: () => SSLEngine, backlog: Int, options: Seq[SocketOption], idleTimeout: Duration, verifySession: (SSLSession) => Try[Unit], closing: TLSClosing): Source[IncomingConnection, Future[ServerBinding]]

    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.

    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.

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

    See also

    Tcp.bind

  13. def bindWithTls(interface: String, port: Int, createSSLEngine: () => SSLEngine): Source[IncomingConnection, Future[ServerBinding]]

    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.

    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.

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

    See also

    Tcp.bind

  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  15. def ensuring(cond: (Tcp) => Boolean, msg: => Any): Tcp
    Implicit
    This member is added by an implicit conversion from Tcp toEnsuring[Tcp] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: (Tcp) => Boolean): Tcp
    Implicit
    This member is added by an implicit conversion from Tcp toEnsuring[Tcp] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: Boolean, msg: => Any): Tcp
    Implicit
    This member is added by an implicit conversion from Tcp toEnsuring[Tcp] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. def ensuring(cond: Boolean): Tcp
    Implicit
    This member is added by an implicit conversion from Tcp toEnsuring[Tcp] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  19. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  21. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  22. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. def outgoingConnection(host: String, port: Int): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection without specifying options.

    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.

  28. def outgoingConnection(remoteAddress: InetSocketAddress, localAddress: Option[InetSocketAddress] = None, options: Traversable[SocketOption] = Nil, halfClose: Boolean = true, connectTimeout: Duration = Duration.Inf, idleTimeout: Duration = Duration.Inf): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection instance representing a prospective TCP client connection to the given endpoint.

    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.

    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.

  29. def outgoingConnectionWithTls(remoteAddress: InetSocketAddress, createSSLEngine: () => SSLEngine, localAddress: Option[InetSocketAddress], options: Seq[SocketOption], connectTimeout: Duration, idleTimeout: Duration, verifySession: (SSLSession) => Try[Unit], closing: TLSClosing): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection with TLS.

    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

  30. def outgoingConnectionWithTls(remoteAddress: InetSocketAddress, createSSLEngine: () => SSLEngine): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection with TLS.

    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

  31. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  32. def toString(): String
    Definition Classes
    AnyRef → Any
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  35. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def bindAndHandleTls(handler: Flow[ByteString, ByteString, _], interface: String, port: Int, sslContext: SSLContext, negotiateNewSession: NegotiateNewSession, backlog: Int = defaultBacklog, options: Traversable[SocketOption] = Nil, idleTimeout: Duration = Duration.Inf)(implicit m: Materializer): Future[ServerBinding]

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint handling the incoming connections through TLS and then run using the provided Flow.

    Creates a Tcp.ServerBinding instance which represents a prospective TCP server binding on the given endpoint handling the incoming connections through TLS and then run using the provided Flow.

    sslContext

    Context containing details such as the trust and keystore

    negotiateNewSession

    Details about what to require when negotiating the connection with the server

    Annotations
    @deprecated
    Deprecated

    (Since version Akka 2.6.0) Use bindAndHandleWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters.

    See also

    Tcp.bindAndHandle Marked API-may-change to leave room for an improvement around the very long parameter list.

  2. def bindTls(interface: String, port: Int, sslContext: SSLContext, negotiateNewSession: NegotiateNewSession, backlog: Int = defaultBacklog, options: Traversable[SocketOption] = Nil, idleTimeout: Duration = Duration.Inf): Source[IncomingConnection, Future[ServerBinding]]

    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.

    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.

    sslContext

    Context containing details such as the trust and keystore

    negotiateNewSession

    Details about what to require when negotiating the connection with the server

    Annotations
    @deprecated
    Deprecated

    (Since version Akka 2.6.0) Use bindWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters.

    See also

    Tcp.bind

  3. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated
  4. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from Tcp toStringFormat[Tcp] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  5. def outgoingTlsConnection(remoteAddress: InetSocketAddress, sslContext: SSLContext, negotiateNewSession: NegotiateNewSession, localAddress: Option[InetSocketAddress] = None, options: Traversable[SocketOption] = Nil, connectTimeout: Duration = Duration.Inf, idleTimeout: Duration = Duration.Inf): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection with TLS.

    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.

    sslContext

    Context containing details such as the trust and keystore

    negotiateNewSession

    Details about what to require when negotiating the connection with the server

    Annotations
    @deprecated
    Deprecated

    (Since version Akka 2.6.0) Use outgoingConnectionWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters.

    See also

    Tcp.outgoingConnection

  6. def outgoingTlsConnection(host: String, port: Int, sslContext: SSLContext, negotiateNewSession: NegotiateNewSession): Flow[ByteString, ByteString, Future[OutgoingConnection]]

    Creates an Tcp.OutgoingConnection with TLS.

    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.

    For more advanced use cases you can manually combine Tcp.outgoingConnection and TLS

    sslContext

    Context containing details such as the trust and keystore

    negotiateNewSession

    Details about what to require when negotiating the connection with the server

    Annotations
    @deprecated
    Deprecated

    (Since version Akka 2.6.0) Use outgoingConnectionWithTls that takes a SSLEngine factory instead. Setup the SSLEngine with needed parameters.

    See also

    Tcp.outgoingConnection

  7. def [B](y: B): (Tcp, B)
    Implicit
    This member is added by an implicit conversion from Tcp toArrowAssoc[Tcp] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from Extension

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromTcp to any2stringadd[Tcp]

Inherited by implicit conversion StringFormat fromTcp to StringFormat[Tcp]

Inherited by implicit conversion Ensuring fromTcp to Ensuring[Tcp]

Inherited by implicit conversion ArrowAssoc fromTcp to ArrowAssoc[Tcp]

Ungrouped