Class: EventSourceController

Inherits:
ApplicationController
  • Object
show all
Includes:
ActionController::Live
Defined in:
lib/generators/disco/app/templates/app/controllers/event_source_controller.rb

Instance Method Summary collapse

Instance Method Details

#projectedObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/generators/disco/app/templates/app/controllers/event_source_controller.rb', line 4

def projected
  response.headers['Content-Type'] = 'text/event-stream'
  sse = ActiveEvent::SSE.new(response.stream)
  ActiveEvent::EventSourceServer.after_event_projection event_id, projection do
    sse.event('projected')
  end
rescue IOError
  # ignore disconnect
rescue ActiveEvent::ProjectionException => e
  sse.event('exception', {error: e.message, backtrace: e.backtrace})
ensure
  sse.close
end