Chúng tôi chạy ứng dụng Node.js và Express trên Heroku sử dụng thư viện ws cho các ổ cắm web thời gian thực. Dưới đây là một ảnh chụp màn hình của nhiều H15 thời gian chờ mà chúng ta đang thấy.Node.js Web Socket H15 Idle Thời gian chờ kết nối trên Heroku
Tôi đã đọc rằng Heroku terminates any idle connection after 55 seconds nhưng ổ cắm của chúng tôi gửi ping-pong qua lại mỗi 5 giây khi kết nối đang mở. Một mảnh của mã máy chủ là dưới đây:
var _this = this;
this.server.on('connection', function(ws){
// check for a ping, respond with pong
ws.on('message', function(data){
data = data.toString('utf8');
if (data === PING) {
ws.send(PONG);
}
});
ws.on('close', function(err){
TL.logger.info('Socket closed: '+path);
_this.sockets = _.filter(_this.sockets, function(_ws){
return ws != _ws;
});
});
ws.on('error', function(err){
TL.logger.info('Socket error: '+path);
_this.sockets = _.filter(_this.sockets, function(_ws){
return ws != _ws;
});
});
_this.sockets.push(ws);
});
Và đây là một hình ảnh của ổ cắm phía khách hàng trong chrome:
Bất cứ ý tưởng là làm thế nào để ngăn chặn các kết nối nhàn rỗi?
Bạn có giải quyết được vấn đề này không? –
Đáng buồn là không, chúng tôi vẫn có một loạt các kết nối nhàn rỗi dường như ngẫu nhiên. – Andrew
@Andrew Chúng tôi cũng gặp lỗi tương tự 2 năm sau đó. Bạn đã bao giờ tìm ra nguyên nhân chưa? – FajitaNachos