Извините. Мой английский не очень хорош ....Сервер-отправленные события с PUMA или пассажиром
Я пробовал сервер отправил события в 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
mypage.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, как мне разрешить петлю о повторном подключении?