Ich versuche, Rails 4 Live Streaming-Komponente zu verwenden. Es funktioniert alles außer, dass es scheint, als ob der Stream offen bleibt und neue Anfragen blockiert.Rails 4, Live-Streaming, bleibt offen, blockiert Anfragen
Wie kann ich sicherstellen, dass die Verbindung beim Schließen oder Klicken auf einen neuen Link innerhalb der Anwendung ordnungsgemäß beendet wird?
Dies ist mein Live-Event-Controller.
def events
response.headers["Content-Type"] = "text/event-stream"
redis = Redis.new
redis.psubscribe("participants.*") do |on|
on.pmessage do |pattern, event, data|
response.stream.write("event: #{event}\n")
response.stream.write("data: #{data}\n\n")
end
end
rescue IOError
ensure
redis.quit
response.stream.close
end
Datenbank conf
production:
adapter: postgresql
encoding: unicode
database: ************
pool: 1000
username: ************
password: ************
timeout: 5000
I Puma als eigenständige Webserver bin mit auf Ubuntu 10.04 mit postgresql 9.2.x. (i, die von nginx bedient werden keine schweren statische Dateien haben müssen)
Sind Sie jemals in der Lage, dieses Problem zu lösen? Dans Antwort ist eine gute Zusammenfassung dessen, was vor sich geht, aber beantwortet die Frage nicht ganz (ich nehme auch für Sie an, da Sie es nicht akzeptiert haben). –
@Teeg Wie du geschrieben hast, ist es eine gute Zusammenfassung, aber es hat meine Frage nicht gelöst. Ich habe stattdessen Faye benutzt, was traurig ist, weil ich wirklich wollte, dass das richtig funktioniert. – Philip
Das ist schade. Ich habe eine [ähnliche Frage] (http://stackoverflow.com/q/18970458/877472) gepostet, die eine doof Lösung enthält. Ich werde dich wissen lassen, ob ich es jemals herausfinden werde. –