Товарищи помогите уже 3 дня понять не могу что не нравится safari
это ответ с сервера:
(используется ActionController::Live)
response.headers['Content-Type'] = 'text/event-stream'
action = params[:user_action] || :export
loader = @user_document.loader(action)
@redis = Redis.new(host: '127.0.0.1', port: 6379, db: 0)
@redis.subscribe(loader.key) do |on|
on.message do |event, data|
if data.blank? || data.to_i == 100
response.stream.write "data: #{data}\n\n"
@redis.unsubscribe(loader.key)
end
response.stream.write "data: #{data}\n\n"
end
end
прослушиваем ответ (клиент):
inLoadFromServer() {
progressProgressBar = 0;
let source = new EventSource('progress_upload'),
increase_on;
source.onmessage = function(e) {
}
}
если отправлять запрос на сервер и начинаем прослушивать ответ inLoadFromServer в Google Chrome все работает, как только начинаем проверять через safari все начинает рушиться при запросе на сервер выявляется ошибка в браузере загрузка фрейма прекращена, в onmessage не заходит. Сервер сначала посылает ответы, но потом прекращает и говорит внутренняя ошибка сервера + Client disconnected. Как решить проблему? в сафари все по особенному делается нежели в других браузерах?