module App::Helpers::SSE

Public Instance Methods

stream_events(out) click to toggle source
# File app/helpers/sse.rb, line 42
def stream_events(out)
  listener  = Streamer.new(out)
  heartbeat = EM.add_periodic_timer(2) { out << "\n" }

  cluster.register(listener)

  out.callback do
    heartbeat.cancel
    cluster.unregister(listener)
  end

  out.errback do |error|
    heartbeat.cancel
    cluster.unregister(listener)
  end
end