как максимизировать на сервере отправленные события открытых соединений? - PullRequest
0 голосов
/ 10 апреля 2019

Я создаю сервис уведомлений для пользователей, чтобы получать уведомления об их деятельности.Мне нужно только уведомление от сервера к клиенту (в одну сторону).Я рассмотрел несколько вариантов, таких как опрос, WebSocket, SSE.Поскольку SSE требует меньше ресурсов и не нуждается в другом протоколе, кроме самого HTTP для связи, в отличие от Websocket.Я выбрал SSE.Однако есть одно ограничение.Он может поддерживать максимум 6 открытых соединений.Я полагаю, это связано с количеством пользователей, одновременно обращающихся к уведомлению.то есть;Максимум 6 пользователей могут получить доступ к уведомлению одновременно.

Как мне максимально увеличить количество открытых соединений?Или все же лучше использовать Websocket вместо SSE?Извините, если я неправильно понял концепцию.Я был бы очень рад узнать некоторую информацию об этом.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Как уже упоминалось в других ответах, большинство браузеров могут открывать около 6 HTTP / 1.x подключений к одному хосту. Таким образом, если вы используете 1 SSE-соединение, оно потенциально останется 5 HTTP / 1.x-соединений. Это верно только для HTTP / 1.x .

При использовании HTTP 2.x соединения с одним и тем же хостом мультиплексируются : так что теоретически вы можете отправлять столько HTTP-запросов одновременно, сколько пожелаете, или Вы можете открыть столько соединений SSE, сколько пожелаете, и, таким образом, обойти ограничение 6 соединений.

0 голосов
/ 10 апреля 2019

Ваше понимание макс-соединений неверно.Речь идет о количестве подключений, которые клиент может открыть к хосту (см. this ).Количество зависит от браузера (версии).

Так что при использовании Chrome и открытии страницы на вашем сайте вы можете использовать макс.6 подключений для получения данных с сервера.

На стороне сервера SSE нет ограничений на отправку одного и того же события нескольким пользователям.

ПРИМЕЧАНИЕ: Если вам все еще нужно поддерживать IE, он не поддерживает SSE "из коробки", поэтому вам потребуется полифилл или другое решение для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...