На самом деле я немного работал над этой библиотекой с сопровождающим. Я думаю, что вы смешали клиентскую часть с серверной. em-eventsource - это библиотека client , которую можно использовать для использования API ServerSentEvent, она не предназначена для запуска SSE.
На стороне сервера совершенно не имеет значения, используете ли вы Rails или любой другой стек (nodejs, php…), если сервер, на котором вы работаете, поддерживает потоковую передачу. Веб-сервер по умолчанию, поставляемый с Rails, не (Webrick), но есть много других, которые делают: Thin, Puma, Goliath…
Чтобы запустить SSE в Rails, вам придется использовать как сервер с поддержкой потоковой передачи, так и соблюдать спецификацию SSE. Он в основном сводится к тому, чтобы сначала ответить соответствующим заголовком Content-type («text / event-stream»), чтобы клиент (браузер) знал, что он должен зависнуть, а затем начать потоковую передачу по сокету. Эта последняя часть не так легко возможна на сегодняшний день в Rails 3 (но не невозможна!); Rails 4 на самом деле теперь поддерживает потоковую передачу простым способом, с чистым и простым внутренним API, так что он обязательно придет.
А пока вы либо:
- путаница с Rack API в Rails (с помощью EventMachine, я думаю, есть несколько примеров в дикой природе)
- или сделайте это умным и используйте функцию потоковой передачи, предоставляемую Sinatra, построенную поверх Rack (см. https://gist.github.com/1476463 для примера приложения Sinatra, которое можно монтировать в Rails!)
- или вы можете использовать внешний сервис, такой как Pusher
- или используйте совершенно другой стек ...
Хороший обзор: http://blog.phusion.nl/2012/08/03/why-rails-4-live-streaming-is-a-big-deal/