Tôi thực sự đang thực hiện một số kiểm tra tải đối với máy chủ ExpressJS và tôi nhận thấy phản hồi gửi bởi máy chủ bao gồm tiêu đề "Kết nối: Giữ-Alive". Theo tôi hiểu, kết nối sẽ vẫn mở cho đến khi máy chủ hoặc máy khách gửi tiêu đề "Kết nối: Đóng".Làm thế nào để đặt thời gian chờ HTTP Keep-Alive trong máy chủ nodejs
Trong một số triển khai, tiêu đề "Kết nối: Giữ-Alive" đi kèm với tiêu đề "Keep-Alive" đặt thời gian chờ kết nối và số lượng yêu cầu liên tiếp tối đa gửi qua kết nối này.
Ví dụ: "Keep-Alive: timeout = 15, max = 100"
Có cách nào (và là nó có liên quan) để thiết lập các thông số trên một máy chủ Express?
Nếu không, bạn có biết ExpressJS xử lý việc này như thế nào không?
Edit: Sau một số cuộc điều tra, tôi phát hiện ra rằng thời gian chờ mặc định được thiết lập trong node standard http library:
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Để thay đổi điều này:
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);
Dù sao nó vẫn trông một chút lạ với tôi rằng máy chủ không gửi bất kỳ gợi ý nào cho khách hàng liên quan đến thời gian chờ của nó.
Chỉnh sửa2: Nhờ josh3736 cho nhận xét của mình.
setSocketKeepAlive không liên quan đến HTTP keep-alive. Nó là một tùy chọn cấp TCP cho phép bạn phát hiện rằng đầu kia của kết nối đã biến mất.