30
我其實在做針對ExpressJS服務器的一些負載測試,我注意到,由服務器發送響應包括「連接:保持活動」標頭。據我瞭解,連接將保持打開,直到服務器或客戶端發送「連接:關閉」標題。如何設置HTTP保持活動超時在服務器的NodeJS
在一些具體實施中,「連接:保持活動」頭配備了一個「保持活動」頭設置連接超時和連續請求的最大數量通過該連接發送。
例如:「保持活動:超時= 15,最大= 100」
有沒有一種方法(和是相關的)來設置一個Express服務器上的這些參數?
如果不是,你知道ExpressJS如何處理這個嗎?
編輯: 一些調查後,我發現默認的超時時間設置在node standard http library:
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);
反正它看起來仍然對我來說有點奇怪,服務器不會向客戶端發送任何有關其超時的提示。
編輯2: 感謝josh3736的評論。
setSocketKeepAlive與HTTP保持連接無關。這是一個TCP級別的選項,可以讓您檢測到連接的另一端已經消失。