Uruchamiamy aplikację Node.js i Express na Heroku, która korzysta z biblioteki ws dla gniazd internetowych w czasie rzeczywistym. Poniżej znajduje się zrzut ekranu z licznych limitów H15, które widzimy.Node.js Gniazdo sieciowe H15 Limit czasu bezczynności połączenia na Heroku
Czytałem, że Heroku terminates any idle connection after 55 seconds ale nasze gniazda wysłać ping-pong w tę iz powrotem, co 5 sekund, gdy połączenie jest otwarte. Fragment kodu serwera jest poniżej:
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);
});
A oto zdjęcie z gniazdem bocznym klienta w chrome:
Każdy pomysł, w jaki sposób, aby zapobiec połączenia bezczynności?
Czy udało się to rozwiązać w ogóle? –
Niestety nie, wciąż mamy kilka pozornie przypadkowych, bezczynnych połączeń. – Andrew
@Andrew Otrzymujemy te same błędy około 2 lata później. Czy kiedykolwiek znalazłeś przyczynę? – FajitaNachos