Как установить тайм-аут HTTP Keep-Alive на сервере nodejs
Я на самом деле выполняю нагрузочное тестирование на сервере ExpressJS, и я заметил, что ответ, отправленный сервером, включает в себя "Connection: Keep-Alive " заголовок. Насколько я понимаю, соединение будет оставаться открытым, пока сервер или клиент не отправит "Соединение: Закрыть " заголовок.
В некоторых реализациях "Connection: Keep-Alive " заголовок приходит с "Keep-Alive» заголовок, задающий время ожидания соединения и максимальное количество последовательных запросов, отправляемых через это соединение.
Например : "Keep-Alive: тайм-аут = 15, максимум = 100 "
Есть ли способ (и это уместно) установить эти параметры на сервере Express?
Если нет, знаете ли вы, как ExpressJS справляется с этим?
Редактировать: После некоторых исследований я обнаружил, что тайм-аут по умолчанию установлен вузел стандартная http библиотека:
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Чтобы изменить это:
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);
В любом случае мне все еще кажется немного странным, что сервер неНе отправлять клиенту подсказки относительно его тайм-аута.
Edit2: Спасибо josh3736 за его комментарий.
setSocketKeepAlive не имеет отношения к HTTP keep-alive. Это опция уровня TCP, которая позволяет определить, что другой конец соединения исчез.