2014-09-09 16 views
10

Gerçek zamanlı web yuvaları için ws kitaplığını kullanan bir Hero.com üzerinde bir Node.js ve Express uygulaması çalıştırıyoruz. Aşağıda, gördüğümüz sayısız H15 zaman aşımının ekran görüntüsü var.Node.js Web Soketi H15 Boşta Bağlantı zaman aşımı, Heroku üzerinde

enter image description here

Ben Heroku terminates any idle connection after 55 seconds okumuştum ama bizim prizler bağlantısı açıkken ileri geri her 5 saniyede pinpon gönderin.

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); 
}); 

Ve burada krom istemci tarafı soket bir fotoğrafı: sunucu kod parçasıdır altındadır

enter image description here

herhangi bir fikir boşta bağlantıyı engellemek için nasıl?

+1

Bunu çözmeyi başardınız mı? –

+0

Ne yazık ki hayır, hala görünüşte rasgele boşta olan bir sürü bağlantımız var. – Andrew

+0

@Andrew Aynı hataları yaklaşık 2 yıl sonra alıyoruz. Sebebini buldun mu? – FajitaNachos

cevap

1

Açıklama: Heroku'daki Node.js platform sahibiyim.

Bunu istemci tarafında mı görüyorsunuz? Ya da sadece hata raporlama panosu?

En azından bir istemcideki hataları çoğaltmaya odaklanmanızı öneririm, herhangi bir etki olup olmadığını görmek için. Aksi halde, yanlış pozitifleri ayıklamak için zaman harcıyor olabilirsiniz. Hata ayıklamaya devam etmeye karar verirseniz, tam olarak hangi isteklerin H15'leri tetiklediğini anlamak için ücretsiz bir papertrail/nodetime/new relic/strongloop addon yüklemek isteyebilirsiniz.

+0

Yorum için teşekkürler! Socket.io'yu, sadece ws modülünü kullanmıyoruz ve müşterimizle ilgili hiçbir sorun görmedik, sadece gösterge tablosundaki hataları görüyorum. – Andrew

+0

Ah üzgünüz, websocket ile ilgili soruların çoğu socket.io tabanlı. Cevabımı ws kütüphanesini yansıtmak için güncelledim. – hunterloftis

+0

Aynı hataları bir Meteor uygulamasında da alıyorum (Meteor, Düğüm'e dayanıyor), bu yazı, aynı zamanda kullandığımız Heroku ve root/apex/naked domain'leri (ALIAS/ANAME vb.) Ile ilgili olduğunu gösterir: http: // stackoverflow.com/questions/13063683/h15-on-heroku-sse-request –