Cómo configurar el tiempo de espera HTTP Keep-Alive en un servidor nodejs
De hecho, estoy haciendo algunas pruebas de carga contra un servidor ExpressJS y noté que la respuesta enviada por el servidor incluye un encabezado "Connection: Keep-Alive". Según tengo entendido, la conexión permanecerá abierta hasta que el servidor o el cliente envíen un encabezado de "Conexión: Cerrar".
En algunas implementaciones, el encabezado "Connection: Keep-Alive" viene con un encabezado "Keep-Alive" que establece el tiempo de espera de la conexión y el número máximo de solicitudes consecutivas enviadas a través de esta conexión.
Por ejemplo: "Keep-Alive: timeout = 15, max = 100"
¿Hay una manera (y es relevante) de establecer estos parámetros en un servidor Express?
Si no, ¿sabe cómo ExpressJS maneja esto?
Editar: Después de algunas investigaciones, descubrí que el tiempo de espera predeterminado se establece en elbiblioteca http estándar de nodo:
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Para cambiar esto:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("Hello World");
}).on('connection', function(socket) {
socket.setTimeout(10000);
}).listen(3000);
De todos modos, todavía me parece un poco extraño que el servidor no envíe ninguna pista al cliente con respecto a su tiempo de espera.
Edit2: Gracias a josh3736 por su comentario.
setSocketKeepAlive no está relacionado con HTTP keep-alive. Es una opción de nivel TCP que le permite detectar que el otro extremo de la conexión ha desaparecido.