Как установить тайм-аут HTTP Keep-Alive на сервере nodejs

Я на самом деле выполняю некоторое нагрузочное тестирование на сервере ExpressJS, и я заметил, что ответ, отправленный сервером, включает в себя «Connection: Keep-Alive» заголовок. Насколько я понимаю, соединение будет оставаться открытым, пока сервер или клиент не отправит сообщение «Соединение: Закрыть». заголовок.

В некоторых реализациях & quot; Соединение: Keep-Alive & quot; В заголовке появляется «Keep-Alive». заголовок, задающий время ожидания соединения и максимальное количество последовательных запросов, отправляемых через это соединение.

Например: & quot; Keep-Alive: timeout = 15, max = 100 & quot;

Есть ли способ (и это уместно) установить эти параметры на сервере Express?

Если нет, знаете ли вы, как ExpressJS справляется с этим?

Edit: После некоторых исследований я обнаружил, что тайм-аут по умолчанию установлен вузел стандартная библиотека 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, которая позволяет определить, что другой конец соединения исчез.

Ответы на вопрос(1)

Ваш ответ на вопрос