Соединение WebSocket против повторных GET

Я создаю прототип приложения с помощью nodejs. Но этот вопрос относится к гипотетическому крупномасштабному развертыванию. Что более требовательно к серверу и / или пропускной способности: WebSocket поддерживает соединения или повторяет запросы HTTP GET клиента?

Например (может быть, крайний пример), эффективнее ли для Twitter разрешать своим клиентам отправлять GET-запросы к его API каждые 20 секунд или каждый клиент подключен через веб-сокет HTTP1.1? Как насчет каждой 1 минуты или больше или меньше?

Кстати, может быть, это не имеет значения, но если предположить, что запросы GET будут обрабатываться nginx, как предполагается, для узла, это изменит?

2 ответа

Решение

WebSockets лучше, потому что вы держите соединение открытым и не отправляете дополнительные заголовки протокола и другие вещи после каждого запроса и ответа. Посмотрите на эту статью:

Во время установления соединения с WebSocket клиент и сервер обмениваются данными на кадр, каждый по 2 байта, по сравнению с 8 килобайтами заголовка http при непрерывном опросе.

websockets - лучший вариант, но пока не во всех браузерах. Если вы пойдете по этому пути, вы захотите использовать SocketIO на стороне клиента и node.js. Это обеспечит переход на флэш-сокеты, если браузер еще не поддерживает веб-сокеты.

Вы получаете прибыль от веб-сокетов, поскольку данные, которые отправляются обратно на сервер, не так велики, как запрос на получение.

Другие вопросы по тегам