Package akka.io
Class TcpMessage$
- java.lang.Object
-
- akka.io.TcpMessage$
-
public class TcpMessage$ extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static TcpMessage$
MODULE$
Static reference to the singleton instance of this Scala object.
-
Constructor Summary
Constructors Constructor Description TcpMessage$()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Tcp.Command
abort()
An abort operation will not flush pending writes and will issue a TCP ABORT command to the O/S kernel which should result in a TCP_RST packet being sent to the peer.Tcp.Command
bind(ActorRef handler, java.net.InetSocketAddress endpoint, int backlog)
Open a listening socket without specifying options.Tcp.Command
bind(ActorRef handler, java.net.InetSocketAddress endpoint, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean pullMode)
The Bind message is send to the TCP manager actor, which is obtained viaTcpExt.getManager()
in order to bind to a listening socket.Tcp.Command
close()
A normal close operation will first flush pending writes and then close the socket.Tcp.Command
confirmedClose()
A confirmed close operation will flush pending writes and half-close the connection, waiting for the peer to close the other half.Tcp.Command
connect(java.net.InetSocketAddress remoteAddress)
Connect to the givenremoteAddress
without binding to a local address and without specifying options.Tcp.Command
connect(java.net.InetSocketAddress remoteAddress, java.net.InetSocketAddress localAddress, java.lang.Iterable<Inet.SocketOption> options, java.time.Duration timeout, boolean pullMode)
The Connect message is sent to the TCP manager actor, which is obtained viaTcpExt.getManager()
.Tcp.Command
connect(java.net.InetSocketAddress remoteAddress, java.net.InetSocketAddress localAddress, java.lang.Iterable<Inet.SocketOption> options, scala.concurrent.duration.FiniteDuration timeout, boolean pullMode)
The Connect message is sent to the TCP manager actor, which is obtained viaTcpExt.getManager()
.Tcp.NoAck
noAck()
DefaultTcp.NoAck
instance which is used when no acknowledgment information is explicitly provided.Tcp.NoAck
noAck(java.lang.Object token)
EachTcp.WriteCommand
can optionally request a positive acknowledgment to be sent to the commanding actor.Tcp.Command
register(ActorRef handler)
The same asregister(handler, false, false)
.Tcp.Command
register(ActorRef handler, boolean keepOpenOnPeerClosed, boolean useResumeWriting)
This message must be sent to a TCP connection actor after receiving theTcp.Connected
message.Tcp.Command
resumeAccepting(int batchSize)
This message enables the accepting of the next connection if pull reading is enabled for connection actors.Tcp.Command
resumeReading()
This command needs to be sent to the connection actor after aTcp.SuspendReading
command in order to resume reading from the socket.Tcp.Command
resumeWriting()
WhenuseResumeWriting
is in effect as was indicated in theTcp.Register
message then this command needs to be sent to the connection actor in order to re-enable writing after aTcp.CommandFailed
event.Tcp.Command
suspendReading()
Sending this command to the connection actor will disable reading from the TCP socket.Tcp.Command
unbind()
In order to close down a listening socket, send this message to that socket’s actor (that is the actor which previously had sent theTcp.Bound
message).Tcp.Command
write(ByteString data)
The same aswrite(data, noAck())
.Tcp.Command
write(ByteString data, Tcp.Event ack)
Write data to the TCP connection.Tcp.Command
writeFile(java.lang.String filePath, long position, long count, Tcp.Event ack)
Writecount
bytes starting atposition
from file atfilePath
to the connection.Tcp.Command
writePath(java.nio.file.Path filePath, long position, long count, Tcp.Event ack)
Writecount
bytes starting atposition
from file atfilePath
to the connection.
-
-
-
Field Detail
-
MODULE$
public static final TcpMessage$ MODULE$
Static reference to the singleton instance of this Scala object.
-
-
Method Detail
-
connect
public Tcp.Command connect(java.net.InetSocketAddress remoteAddress, java.net.InetSocketAddress localAddress, java.lang.Iterable<Inet.SocketOption> options, scala.concurrent.duration.FiniteDuration timeout, boolean pullMode)
The Connect message is sent to the TCP manager actor, which is obtained viaTcpExt.getManager()
. Either the manager replies with aTcp.CommandFailed
or the actor handling the new connection replies with aTcp.Connected
message.- Parameters:
remoteAddress
- is the address to connect tolocalAddress
- optionally specifies a specific address to bind tooptions
- Please refer toTcpSO
for a list of all supported options.timeout
- is the desired connection timeout,null
means "no timeout"pullMode
- enables pull based reading from the connection
-
connect
public Tcp.Command connect(java.net.InetSocketAddress remoteAddress, java.net.InetSocketAddress localAddress, java.lang.Iterable<Inet.SocketOption> options, java.time.Duration timeout, boolean pullMode)
The Connect message is sent to the TCP manager actor, which is obtained viaTcpExt.getManager()
. Either the manager replies with aTcp.CommandFailed
or the actor handling the new connection replies with aTcp.Connected
message.- Parameters:
remoteAddress
- is the address to connect tolocalAddress
- optionally specifies a specific address to bind tooptions
- Please refer toTcpSO
for a list of all supported options.timeout
- is the desired connection timeout,null
means "no timeout"pullMode
- enables pull based reading from the connection
-
connect
public Tcp.Command connect(java.net.InetSocketAddress remoteAddress)
Connect to the givenremoteAddress
without binding to a local address and without specifying options.
-
bind
public Tcp.Command bind(ActorRef handler, java.net.InetSocketAddress endpoint, int backlog, java.lang.Iterable<Inet.SocketOption> options, boolean pullMode)
The Bind message is send to the TCP manager actor, which is obtained viaTcpExt.getManager()
in order to bind to a listening socket. The manager replies either with aTcp.CommandFailed
or the actor handling the listen socket replies with aTcp.Bound
message. If the local port is set to 0 in the Bind message, then theTcp.Bound
message should be inspected to find the actual port which was bound to.- Parameters:
handler
- The actor which will receive all incoming connection requests in the form ofTcp.Connected
messages.endpoint
- The socket address to bind to; use port zero for automatic assignment (i.e. an ephemeral port, seeTcp.Bound
)backlog
- This specifies the number of unaccepted connections the O/S kernel will hold for this port before refusing connections.options
- Please refer toTcpSO
for a list of all supported options.pullMode
- enables pull based accepting and of connections and pull based reading from the accepted connections.
-
bind
public Tcp.Command bind(ActorRef handler, java.net.InetSocketAddress endpoint, int backlog)
Open a listening socket without specifying options.
-
register
public Tcp.Command register(ActorRef handler, boolean keepOpenOnPeerClosed, boolean useResumeWriting)
This message must be sent to a TCP connection actor after receiving theTcp.Connected
message. The connection will not read any data from the socket until this message is received, because this message defines the actor which will receive all inbound data.- Parameters:
handler
- The actor which will receive all incoming data and which will be informed when the connection is closed.keepOpenOnPeerClosed
- If this is set to true then the connection is not automatically closed when the peer closes its half, requiring an explicitTcp.ConnectionClosed from our side when finished.
useResumeWriting
- If this is set to true then the connection actor will refuse all further writes after issuing aTcp.CommandFailed
notification untilTcp
ResumeWriting
is received. This can be used to implement NACK-based write backpressure.
-
register
public Tcp.Command register(ActorRef handler)
The same asregister(handler, false, false)
.
-
unbind
public Tcp.Command unbind()
In order to close down a listening socket, send this message to that socket’s actor (that is the actor which previously had sent theTcp.Bound
message). The listener socket actor will reply with aTcp.Unbound
message.
-
close
public Tcp.Command close()
A normal close operation will first flush pending writes and then close the socket. The sender of this command and the registered handler for incoming data will both be notified once the socket is closed using aTcp.Closed
message.
-
confirmedClose
public Tcp.Command confirmedClose()
A confirmed close operation will flush pending writes and half-close the connection, waiting for the peer to close the other half. The sender of this command and the registered handler for incoming data will both be notified once the socket is closed using aTcp.ConfirmedClosed
message.
-
abort
public Tcp.Command abort()
An abort operation will not flush pending writes and will issue a TCP ABORT command to the O/S kernel which should result in a TCP_RST packet being sent to the peer. The sender of this command and the registered handler for incoming data will both be notified once the socket is closed using aTcp.Aborted
message.
-
noAck
public Tcp.NoAck noAck(java.lang.Object token)
EachTcp.WriteCommand
can optionally request a positive acknowledgment to be sent to the commanding actor. If such notification is not desired theTcp.SimpleWriteCommand.ack()
must be set to an instance of this class. The token contained within can be used to recognize which write failed when receiving aTcp.CommandFailed
message.
-
noAck
public Tcp.NoAck noAck()
DefaultTcp.NoAck
instance which is used when no acknowledgment information is explicitly provided. Its “token” isnull
.
-
write
public Tcp.Command write(ByteString data, Tcp.Event ack)
Write data to the TCP connection. If no ack is needed use the specialNoAck
object. The connection actor will reply with aTcp.CommandFailed
message if the write could not be enqueued. IfTcp.SimpleWriteCommand.wantsAck()
returns true, the connection actor will reply with the suppliedTcp.SimpleWriteCommand.ack()
token once the write has been successfully enqueued to the O/S kernel. Note that this does not in any way guarantee that the data will be or have been sent! Unfortunately there is no way to determine whether a particular write has been sent by the O/S.
-
write
public Tcp.Command write(ByteString data)
The same aswrite(data, noAck())
.
-
writeFile
public Tcp.Command writeFile(java.lang.String filePath, long position, long count, Tcp.Event ack)
Writecount
bytes starting atposition
from file atfilePath
to the connection. The count must be > 0. The connection actor will reply with aTcp.CommandFailed
message if the write could not be enqueued. IfTcp.SimpleWriteCommand.wantsAck()
returns true, the connection actor will reply with the suppliedTcp.SimpleWriteCommand.ack()
token once the write has been successfully enqueued to the O/S kernel. Note that this does not in any way guarantee that the data will be or have been sent! Unfortunately there is no way to determine whether a particular write has been sent by the O/S.
-
writePath
public Tcp.Command writePath(java.nio.file.Path filePath, long position, long count, Tcp.Event ack)
Writecount
bytes starting atposition
from file atfilePath
to the connection. The count must be > 0. The connection actor will reply with aTcp.CommandFailed
message if the write could not be enqueued. IfTcp.SimpleWriteCommand.wantsAck()
returns true, the connection actor will reply with the suppliedTcp.SimpleWriteCommand.ack()
token once the write has been successfully enqueued to the O/S kernel. Note that this does not in any way guarantee that the data will be or have been sent! Unfortunately there is no way to determine whether a particular write has been sent by the O/S.
-
resumeWriting
public Tcp.Command resumeWriting()
WhenuseResumeWriting
is in effect as was indicated in theTcp.Register
message then this command needs to be sent to the connection actor in order to re-enable writing after aTcp.CommandFailed
event. AllTcp.WriteCommand
processed by the connection actor between the firstTcp.CommandFailed
and subsequent reception of this message will also be rejected withTcp.CommandFailed
.
-
suspendReading
public Tcp.Command suspendReading()
Sending this command to the connection actor will disable reading from the TCP socket. TCP flow-control will then propagate backpressure to the sender side as buffers fill up on either end. To re-enable reading sendTcp.ResumeReading
.
-
resumeReading
public Tcp.Command resumeReading()
This command needs to be sent to the connection actor after aTcp.SuspendReading
command in order to resume reading from the socket.
-
resumeAccepting
public Tcp.Command resumeAccepting(int batchSize)
This message enables the accepting of the next connection if pull reading is enabled for connection actors.- Parameters:
batchSize
- The number of connections to accept before waiting for the next resume command
-
-