diff --git a/akka-actor/src/main/scala/akka/io/Tcp.scala b/akka-actor/src/main/scala/akka/io/Tcp.scala index 989c1e05f1..8c5150cc83 100644 --- a/akka-actor/src/main/scala/akka/io/Tcp.scala +++ b/akka-actor/src/main/scala/akka/io/Tcp.scala @@ -50,6 +50,8 @@ object Tcp extends ExtensionKey[TcpExt] { * [[akka.io.Inet.SocketOption]] to enable or disable TCP_NODELAY * (disable or enable Nagle's algorithm) * + * Please note, that TCP_NODELAY is enabled by default. + * * For more information see [[java.net.Socket.setTcpNoDelay]] */ case class TcpNoDelay(on: Boolean) extends SocketOption { diff --git a/akka-actor/src/main/scala/akka/io/TcpConnection.scala b/akka-actor/src/main/scala/akka/io/TcpConnection.scala index 0af6497668..ec866ae75f 100644 --- a/akka-actor/src/main/scala/akka/io/TcpConnection.scala +++ b/akka-actor/src/main/scala/akka/io/TcpConnection.scala @@ -109,6 +109,8 @@ private[io] abstract class TcpConnection(val channel: SocketChannel, /** used in subclasses to start the common machinery above once a channel is connected */ def completeConnect(commander: ActorRef, options: immutable.Traversable[SocketOption]): Unit = { + // Turn off Nagle's algorithm by default + channel.socket.setTcpNoDelay(true) options.foreach(_.afterConnect(channel.socket)) commander ! Connected(