Недавно я узнал, что у Chrome, похоже, есть ограничение на соединение 6 (Chrome зависает после определенного количества переданных данных - ждет доступного сокета), к сожалению, я нашел это из-за сложного пути, получив сообщение "Ожидание доступных сокетов" после загрузки слишком большого количества вкладок (7).
Я знаю, что это Chrome, поскольку другой пользователь Chrome (a.k.a другой сеанс браузера) одновременно загружает веб-страницу на одном компьютере (у меня на моем компьютере открыто несколько пользователей Chrome). Так что это не сервер в любом случае.
Я считаю, что это связано с тем, что в socket.io(который я использую для уведомлений), я xhr-опрос, который заставляет Chrome ждать, пока он не сможет захватить сокет из одного из этих соединений, прежде чем он сможет обработать страница.
Каково решение этого?
Я подумал о нескольких решениях:
- сделать окно xhr-poll меньше, это увеличивает соединения в браузере и node.js, но будет означать, что страница не остановится.
- Использовать websockets. Я не уверен, что веб-сайты не защищены от этой проблемы.
- Сделать подключения неактивными на вкладках, не сфокусированных. Хотя кажется, что другим сайтам это не нужно...
- Используйте какое-то соединение. Учитывая, что Chrome изолирует веб-узлы и запросы xhr на вкладке, мне трудно понять, как это работает.
В качестве добавленной точки: причина, по которой я не пошел с веб-сайтами с самого начала, заключается в том, что я использую cloudflare. Но если это способ решить эту проблему, пусть так и будет.