Festlegen des HTTP-Keep-Alive-Timeouts auf einem NodeJS-Server
Ich führe derzeit einige Auslastungstests für einen ExpressJS-Server durch und habe festgestellt, dass die vom Server gesendete Antwort den Header "Connection: Keep-Alive" enthält. Soweit ich weiß, bleibt die Verbindung geöffnet, bis der Server oder der Client den Header "Connection: Close" sendet.
In einigen Implementierungen wird im Header "Connection: Keep-Alive" ein Header "Keep-Alive" angezeigt, der das Verbindungszeitlimit und die maximale Anzahl aufeinanderfolgender Anforderungen festlegt, die über diese Verbindung gesendet werden.
Zum Beispiel: "Keep-Alive: Timeout = 15, max = 100"
Gibt es eine Möglichkeit (und ist sie relevant), diese Parameter auf einem Express-Server festzulegen?
Wenn nicht, wissen Sie, wie ExpressJS damit umgeht?
Bearbeiten: Nach einigen Nachforschungen habe ich herausgefunden, dass das Standard - Timeout in eingestellt isthttp-Standardbibliothek des Knotens:
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Um dies zu ändern:
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);
Trotzdem sieht es für mich ein bisschen komisch aus, dass der Server dem Client keinen Hinweis auf sein Timeout gibt.
Edit2: Vielen Dank an josh3736 für seinen Kommentar.
setSocketKeepAlive hat nichts mit HTTP-Keep-Alive zu tun. Dies ist eine Option auf TCP-Ebene, mit der Sie feststellen können, dass das andere Ende der Verbindung verschwunden ist.