Sto provando a utilizzare il componente Live Streaming di Rails 4. Funziona tutto tranne che sembra che il flusso rimanga aperto e blocchi la nuova richiesta.Rails 4, Live Streaming, rimane aperto, bloccando le richieste
Come posso garantire che la connessione si chiuda correttamente quando si chiude o si fa clic su un nuovo collegamento all'interno dell'applicazione?
Questo è il mio controller eventi dal vivo.
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
conf Database
production:
adapter: postgresql
encoding: unicode
database: ************
pool: 1000
username: ************
password: ************
timeout: 5000
sto usando puma come webserver standalone (non ho i file statici pesanti che hanno bisogno di essere servita da nginx) su Ubuntu 10.04 con PostgreSQL 9.2.x.
Sei mai stato in grado di risolvere questo problema? La risposta di Dan è un buon riassunto di ciò che sta succedendo, ma non risponde alla domanda (presumo anche per te dato che non l'hai accettato). –
@Teeg Come hai scritto, è un buon riassunto ma non ha risolto la mia domanda. Alla fine ho usato Faye, il che è triste perché volevo che funzionasse correttamente. – Philip
Questo è troppo male. Ho pubblicato una [domanda simile] (http://stackoverflow.com/q/18970458/877472) che contiene una soluzione sciocca. Ti farò sapere se riuscirò mai a capirlo. –