我已经制作了一个使用 Rails 4 中的 Live 方法的应用程序。但是,当我使用它时,每次刷新都会继续占用一个连接,直到它达到与数据库的最大连接数,然后永远挂起并加载。
当用户刷新站点或决定离开站点时,我可以做些什么来确保断开连接?
这是我的设置:
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
logger.info "Stream closed"
ensure
redis.quit
response.stream.close
end
我使用 Nginx 和 Rainbows!在 Ubuntu 10.04 上。Ruby 2.0.0-p195 Postgresql Rails 4