Module: App::Helpers::SSE

Defined in:
app/helpers/sse.rb

Defined Under Namespace

Classes: Streamer

Instance Method Summary collapse

Instance Method Details

#stream_events(out) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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