diff --git a/rosjava/src/main/java/org/ros/internal/transport/tcp/TcpServerHandshakeHandler.java b/rosjava/src/main/java/org/ros/internal/transport/tcp/TcpServerHandshakeHandler.java index f5f1a149e1def482336c1dee9b51c7b53fbbf413..6f534d585e9cb571a31472b11f5774f3431d8fdb 100644 --- a/rosjava/src/main/java/org/ros/internal/transport/tcp/TcpServerHandshakeHandler.java +++ b/rosjava/src/main/java/org/ros/internal/transport/tcp/TcpServerHandshakeHandler.java @@ -96,6 +96,10 @@ public class TcpServerHandshakeHandler extends SimpleChannelHandler { DefaultPublisher<?> publisher = topicParticipantManager.getPublisher(topicName); ChannelBuffer outgoingBuffer = publisher.finishHandshake(incomingConnectionHeader); Channel channel = ctx.getChannel(); + if (incomingConnectionHeader.hasField(ConnectionHeaderFields.TCP_NODELAY)) { + boolean tcpNoDelay = "1".equals(incomingConnectionHeader.getField(ConnectionHeaderFields.TCP_NODELAY)); + channel.getConfig().setOption("tcpNoDelay", tcpNoDelay); + } ChannelFuture future = channel.write(outgoingBuffer).await(); if (!future.isSuccess()) { throw new RosRuntimeException(future.getCause());