diff --git a/lib/src/client/http2_connection.dart b/lib/src/client/http2_connection.dart index 9e34abb..ee2172c 100644 --- a/lib/src/client/http2_connection.dart +++ b/lib/src/client/http2_connection.dart @@ -78,6 +78,8 @@ class Http2ClientConnection implements connection.ClientConnection { Future connectTransport() async { final securityContext = credentials.securityContext; Socket socket = await Socket.connect(host, port); + // Don't wait for io buffers to fill up before sending requests. + socket.setOption(SocketOption.tcpNoDelay, true); if (securityContext != null) { // Todo(sigurdm): We want to pass supportedProtocols: ['h2']. http://dartbug.com/37950 socket = await SecureSocket.secure(socket, diff --git a/lib/src/server/server.dart b/lib/src/server/server.dart index 630c0a2..24a14c8 100644 --- a/lib/src/server/server.dart +++ b/lib/src/server/server.dart @@ -105,10 +105,17 @@ class Server { server = _secureServer; } else { _insecureServer = await ServerSocket.bind( - address ?? InternetAddress.anyIPv4, port ?? 80, backlog: backlog, shared: shared , v6Only: v6Only); + address ?? InternetAddress.anyIPv4, + port ?? 80, + backlog: backlog, + shared: shared, + v6Only: v6Only, + ); server = _insecureServer; } server.listen((socket) { + // Don't wait for io buffers to fill up before sending requests. + socket.setOption(SocketOption.tcpNoDelay, true); final connection = ServerTransportConnection.viaSocket(socket, settings: http2ServerSettings); _connections.add(connection);