Подтвердить что ты не робот

Как разрешить ограничение доступа Chrome 6 при использовании xhr-опроса

Недавно я узнал, что у Chrome, похоже, есть ограничение на соединение 6 (Chrome зависает после определенного количества переданных данных - ждет доступного сокета), к сожалению, я нашел это из-за сложного пути, получив сообщение "Ожидание доступных сокетов" после загрузки слишком большого количества вкладок (7).

Я знаю, что это Chrome, поскольку другой пользователь Chrome (a.k.a другой сеанс браузера) одновременно загружает веб-страницу на одном компьютере (у меня на моем компьютере открыто несколько пользователей Chrome). Так что это не сервер в любом случае.

Я считаю, что это связано с тем, что в socket.io(который я использую для уведомлений), я xhr-опрос, который заставляет Chrome ждать, пока он не сможет захватить сокет из одного из этих соединений, прежде чем он сможет обработать страница.

Каково решение этого?

Я подумал о нескольких решениях:

  • сделать окно xhr-poll меньше, это увеличивает соединения в браузере и node.js, но будет означать, что страница не остановится.
  • Использовать websockets. Я не уверен, что веб-сайты не защищены от этой проблемы.
  • Сделать подключения неактивными на вкладках, не сфокусированных. Хотя кажется, что другим сайтам это не нужно...
  • Используйте какое-то соединение. Учитывая, что Chrome изолирует веб-узлы и запросы xhr на вкладке, мне трудно понять, как это работает.

В качестве добавленной точки: причина, по которой я не пошел с веб-сайтами с самого начала, заключается в том, что я использую cloudflare. Но если это способ решить эту проблему, пусть так и будет.

4b9b3361

Ответ 1

Используйте реальный webSocket, а не XHR-опрос. Соединения webSocket не учитываются до предела подключения http к тому же самому происхождению.

Существует отдельный глобальный предел того, сколько веб-соединений может быть создано, но это большое число (200 в Firefox - не уверен, что именно в Chrome).

Вот несколько ссылок на эту тему: