Сначала извини. Мой английский не очень хорош....
Я пытаюсь отправлять события сервера в Rails4 (Ruby on Rails).
sse_controller.rb
def test_sse
response.headers['Content-Type'] = 'text/event-stream'
sse = SSE.new(response.stream)
puts 'New SSE = '+sse.to_s
begin
loop do
sse.write({ nowtimes: Time.new}, event: 'timer')
end
ensure
sse.close
end
end
моя страница.html.erb
$(document).ready(function(){
var evtSource = new EventSource("/sse/test_sse");
evtSource.addEventListener('timer', function(e) {
obj = JSON.parse(e.data);
console.log(obj.nowtimes);
});
})
Я использую NGINX в качестве веб-сервера.
Пока я использовал Passenger в качестве сервера приложений. Это работает хорошо, но не может поддерживать многопоточность. Он может открывать только 6 вкладок одновременно.
Пока я пытаюсь использовать PUMA в качестве сервера приложений, он работает странно. SSE в клиенте пытается переподключиться без перерыва.
Если я использую Passenger, как мне решить проблему с номером соединения?
Или, если я использую PUMA, как мне разрешить цикл повторного подключения?