Одно HTTP-соединение может использоваться только для одного HTTP-запроса одновременно.Предположим, что страница запросила документ размером 100 КБ, от клиента на сервер больше ничего не будет отправлено до тех пор, пока этот документ размером 100 КБ не будет передан.Это называется блокировка заголовка .Клиент может установить дополнительное соединение с сервером, но также существует ограничение на количество одновременных соединений с тем же сервером.
Одна из основных причин разработки SPDY и более поздние HTTP / 2 решали именно эту проблему.Однако поддержка SPDY и HTTP / 2 пока не так широко распространена, как для WebSocket.WebSocket может помочь вам раньше, потому что он поддерживает несколько потоков в полнодуплексном режиме .
Как только HTTP / 2 будет лучше поддерживаться, это будет предпочтительным решением для этой проблемы, но WebSocket все равно будетлучше для веб-приложений реального времени, где сервер должен передавать данные клиенту.
Взгляните на N2O framework , он был создан для решения проблем, которые я описал выше.В N2O WebSocket используется для отправки всех ресурсов, связанных со страницей.
Сколько скорости вы могли бы получить, используя WebSocket вместо стандартных HTTP-запросов, в значительной степени зависит от вашего конкретного веб-сайта: как часто он запрашивает данные с серверанасколько велик типичный ответ и т. д.