Server-Sent Events прилетают разом
От: jazzer Россия Skype: enerjazzer
Дата: 07.03.20 17:54
Оценка:
Вот решил заюзать сабж.
Посылаю 20 сообщений с интервалом в секунду.
Если я с виндового компа запускаю curl на этот адрес, то сообщения прекрасно проходят без задержек, одно за одним, с нитервалом в секунду.
Но в браузере (на том же виндовом компе, и хром, и лиса, юзаю обычный EventSource) почему-то я получаю один event open и после этого тишина на те самые 20 секунда, после чего все 20 сообщений прилетают разом.

Что за червие? Кто-нибудь сталкивался?
По идее, если бы это были файрволы и прочие прокси, то в curl была бы та же картина... Или нет?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Отредактировано 08.03.2020 6:48 jazzer (опечатка в сабже) . Предыдущая версия .
sse
Re: Server-Side Events прилетают разом
От: halo Украина  
Дата: 07.03.20 21:10
Оценка:
Здравствуйте, jazzer, Вы писали:

J>...


cURL браузеру рознь. cURL-запрос составлен руками или для чистоты эксперимента скопирован в отладчике с помощью "Copy as cURL"? Каков размер каждого сообщения, и как меняется поведение при весомом увеличении размера сообщения? Применяется ли на сервере компрессия?
Re: Server-Side Events прилетают разом
От: bnk СССР http://unmanagedvisio.com/
Дата: 07.03.20 22:11
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Вот решил заюзать сабж.

J>Посылаю 20 сообщений с интервалом в секунду.
J>Если я с виндового компа запускаю curl на этот адрес, то сообщения прекрасно проходят без задержек, одно за одним, с нитервалом в секунду.
J>Но в браузере (на том же виндовом компе, и хром, и лиса, юзаю обычный EventSource) почему-то я получаю один event open и после этого тишина на те самые 20 секунда, после чего все 20 сообщений прилетают разом.

J>Что за червие? Кто-нибудь сталкивался?

J>По идее, если бы это были файрволы и прочие прокси, то в curl была бы та же картина... Или нет?

В конце сообщения два перевода строки?
Re[2]: Server-Side Events прилетают разом
От: jazzer Россия Skype: enerjazzer
Дата: 08.03.20 06:22
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>В конце сообщения два перевода строки?


да
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Server-Side Events прилетают разом
От: jazzer Россия Skype: enerjazzer
Дата: 08.03.20 06:47
Оценка:
Здравствуйте, halo, Вы писали:

H>cURL браузеру рознь.

Ну да, в этом и вопрос.

H>cURL-запрос составлен руками ...

просто curl -v server:/stream

H>...или для чистоты эксперимента скопирован в отладчике с помощью "Copy as cURL"? Каков размер каждого сообщения, и как меняется поведение при весомом увеличении размера сообщения? Применяется ли на сервере компрессия?

Сейчас попробую.
Размер маленький.

Попробовал, да, компрессия применяется, в запросе "Copy as cURL" есть --compressed, в ответе Content-Encoding: gzip
С этим что-то можно сделать?
Я просто создаю в JS EventSource(url), там ни слова про компрессию, так что непонятно, откуда этот запрос на компрессию прилетает.

МОжет, можно что-то сделать на стороне сервера? Типа отменить компрессию, или отменить буферизацию даже при включенной компрессии?
Сервер Flask
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Server-Sent Events прилетают разом
От: MadHuman Россия  
Дата: 08.03.20 17:25
Оценка: 1 (1)
Здравствуйте, jazzer, Вы писали:

J>Но в браузере (на том же виндовом компе, и хром, и лиса, юзаю обычный EventSource) почему-то я получаю один event open и после этого тишина на те самые 20 секунда, после чего все 20 сообщений прилетают разом.


J>Что за червие? Кто-нибудь сталкивался?

было такое, причина была в том, что сервер применяет сжатие gzip (или аналог). отключили сжатие для таких реквестов стало норм.
Re[2]: Server-Sent Events прилетают разом
От: jazzer Россия Skype: enerjazzer
Дата: 08.03.20 18:03
Оценка:
Здравствуйте, MadHuman, Вы писали:

J>>Что за червие? Кто-нибудь сталкивался?

MH>было такое, причина была в том, что сервер применяет сжатие gzip (или аналог). отключили сжатие для таких реквестов стало норм.

Да, похоже.
У меня сервер на Flask написан, вы не знаете, как в нем можно отключить сжатие для SSE?
Я с ним имею дело второй день, так что для меня это темный лес пока
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Server-Sent Events прилетают разом
От: MadHuman Россия  
Дата: 10.03.20 11:17
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, MadHuman, Вы писали:


J>>>Что за червие? Кто-нибудь сталкивался?

MH>>было такое, причина была в том, что сервер применяет сжатие gzip (или аналог). отключили сжатие для таких реквестов стало норм.

J>Да, похоже.

J>У меня сервер на Flask написан, вы не знаете, как в нем можно отключить сжатие для SSE?
нет, не подскажу. когда мы столкнулись у нас был IIS.
в нём можно настроить что для ответов с контентом типа (Content-Type: text/event-stream) не применять динамическое сжатие.
Отредактировано 10.03.2020 11:19 MadHuman . Предыдущая версия .
Re[3]: Server-Side Events прилетают разом
От: Mystic Artifact  
Дата: 13.03.20 21:19
Оценка:
Здравствуйте, jazzer, Вы писали:

Я понимаю, что запоздало, и про Flask я ничего нового не скажу. Клиент говорит в Accept-Encoding какие шифры (deflate, gzip, br) он может принять и понять, а сервер вправе выбрать любой (или не принимать вовсе).
Re[3]: Server-Side Events прилетают разом
От: Ziaw Россия  
Дата: 20.03.20 19:21
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Попробовал, да, компрессия применяется, в запросе "Copy as cURL" есть --compressed, в ответе Content-Encoding: gzip


а curl с этим флагом начинает работать неверно?

J>С этим что-то можно сделать?


Отключить на reverse-proxy.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.