2015-09-18 12 views
5

Meine Rails-Anwendung verwendet das ActionCable-Juwel, das als einfache Chat-Anwendung mit einem Kanal konfiguriert ist.ActionCable Continuous Connect/Disconnect-Schleife

Das Schließen-Ereignis wird immer aufgerufen und dann kontinuierlich wieder geöffnet. Mein Rails-Server erkennt die Verbindung ordnungsgemäß. Die Schleife findet im Browser/Javascript statt.

Connection.prototype.events = { 
     message: function(event) { 
     var identifier, message, ref; 
     ref = JSON.parse(event.data), identifier = ref.identifier, message = ref.message; 
     return this.consumer.subscriptions.notify(identifier, "received", message); 
     }, 
     open: function() { 
     this.disconnected = false; 
     return this.consumer.subscriptions.reload(); 
     }, 
     close: function() { 
     return this.disconnect(); 
     }, 
     error: function() { 
     return this.disconnect(); 
     } 
    }; 

Hat jemand dieses Problem erlebt?

+0

Ich hatte ein ähnliches Problem, es stellte sich heraus, dass ich eine massive Garbage Collection war, die über 8 Sekunden oder mehr dauern würde, wodurch der Client den Ping verpassen würde. Ich habe firefox dev edition ausgeführt und es stellte sich heraus, dass es ein Speicherleck gab, wo Firefox 8 GB Speicher verbrauchte. – timthez

+0

Haben Sie jemals herausgefunden, was damit nicht stimmt? Ich habe dieses Problem auch. –

Antwort

-1

Ich habe das gleiche Problem und ich fand heraus, dass dies mit den Ping-Nachrichten verbunden ist, die der Server an den Client senden soll. An meinem Ende empfängt der Client sie noch nicht, es empfängt die Verbindung zu X-Kanal-Nachricht erfolgreich.

Edit: @vanboom überprüfen Sie bitte, wenn Sie so in Ihrer gemfile verweisen actioncable:

gem 'actioncable', github: "rails/actioncable", branch: 'archive' 
0

Achten Sie darauf, einen anderen Server als dünn verwenden. Ich hatte dieses Problem und schlug meinen Kopf 3 Tage lang gegen meine Tastatur, bis ich einen anderen Server (Puma) ausprobierte und in der Lage war, mein Problem zu lösen. https://github.com/puma/puma