Метод события Server-Sent не обрабатывается Firefox

Я создаю приложение rails, используя библиотеку ActionController::Live и Custom SSE. Мой сервер - puma, а версия rails - 4, это мой код в моем контроллере:

include ActionController::Live
def index
response.headers['Content-Type'] = 'text/event-stream'
ss = Reloader::SSE.new(response.stream)
100.times {
  ss.write({ :message => "just checking"}, :event => 'refresh')
  sleep 10
}

ensure
   ss.close
end

а это файл моей библиотеки sse.rb

class SSE
def initialize io
  @io = io
end

def write object, options = {}
  options.each do |k,v|
    @io.write "#{k}: #{v}\n"
  end
  @io.write "data: #{JSON.dump(object)}\n\n"
end

def close
  @io.close
end
end

и это мой файл application.js для обработки SSE

$(document).ready(function() {
  setTimeout(function() {
    var source = new EventSource('/');
    source.addEventListener('refresh', function(e) {
      window.location.reload();
    });
  }, 1);
});

Я следую инструкциям с этого сайта http://tenderlovemaking.com/2012/07/30/is-it-live.html Всякий раз, когда я загружаю свою страницу Firefox, она не обрабатывает поток, вместо этого показывает возможность загрузки потока в виде текстового файла. Я не понимаю, почему это происходит.


person Surendra Bobba    schedule 15.11.2013    source источник
comment
SSE — это королевская боль, чтобы заставить работать. Ваша установка работает с Chrome?   -  person Richard Peck    schedule 15.11.2013
comment
нет, в хроме тоже не работает, только что проверил. Я заметил, что метод EventSource не работает из того, что я вижу на консоли.   -  person Surendra Bobba    schedule 15.11.2013
comment
Хорошо, это, безусловно, несколько расширяет возможные проблемы   -  person Richard Peck    schedule 15.11.2013
comment
Вы пытались просто отправить одно сообщение (без сна и т. д.)? Мы обнаружили, что это полностью вызвало у нас проблему   -  person Richard Peck    schedule 15.11.2013
comment
я попробую это прямо сейчас   -  person Surendra Bobba    schedule 15.11.2013


Ответы (1)


Мое понимание SSE здесь ошибочно, SSE и страница/контроллер, с которыми я работаю, я принял их за одно целое, я пытался просмотреть контроллер SSE в Firefox или Chrome. Очень плохое понимание с моей стороны SSE. Контроллер SSE и страница, на которой я хочу инициировать события, совершенно разные. Я получил этот ответ в конце этого урока

http://tenderlovemaking.com/2012/07/30/is-it-live.html

Надеюсь, вы, ребята, тоже поняли.

person Surendra Bobba    schedule 15.11.2013