This commit is contained in:
Redkale
2018-04-28 20:06:12 +08:00
parent c470d31605
commit 16cbabc79d

View File

@@ -13,6 +13,7 @@ import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import static org.redkale.net.ProtocolServer.*;
/** /**
* *
@@ -151,7 +152,7 @@ public abstract class AsyncConnection implements AsynchronousByteChannel, AutoCl
*/ */
public static CompletableFuture<AsyncConnection> createTCP(final AsynchronousChannelGroup group, final SocketAddress address, public static CompletableFuture<AsyncConnection> createTCP(final AsynchronousChannelGroup group, final SocketAddress address,
final int readTimeoutSeconds, final int writeTimeoutSeconds) { final int readTimeoutSeconds, final int writeTimeoutSeconds) {
return createTCP(group, null, address, false, readTimeoutSeconds, writeTimeoutSeconds); return createTCP(group, null, address, supportTcpNoDelay(), readTimeoutSeconds, writeTimeoutSeconds);
} }
/** /**
@@ -190,12 +191,11 @@ public abstract class AsyncConnection implements AsynchronousByteChannel, AutoCl
channel.connect(address, null, new CompletionHandler<Void, Void>() { channel.connect(address, null, new CompletionHandler<Void, Void>() {
@Override @Override
public void completed(Void result, Void attachment) { public void completed(Void result, Void attachment) {
if (noDelay) {
try { try {
channel.setOption(StandardSocketOptions.TCP_NODELAY, true); if (noDelay) channel.setOption(StandardSocketOptions.TCP_NODELAY, true);
if (supportTcpKeepAlive()) channel.setOption(StandardSocketOptions.SO_KEEPALIVE, true);
} catch (IOException e) { } catch (IOException e) {
} }
}
future.complete(create(channel, sslContext, address, readTimeoutSeconds, writeTimeoutSeconds)); future.complete(create(channel, sslContext, address, readTimeoutSeconds, writeTimeoutSeconds));
} }