HTTP против Websockets в отношении накладных расходов

Я создаю программу синхронизации файлов (в отличие от Dropbox), используя node.js на обоих концах. Мне нужно, чтобы тысячи клиентов одновременно запрашивали данные.

Вот моя текущая система:

  • Сервер отправляет уведомления клиенту через веб-сокет (файл был обновлен)
  • Клиент ставит в очередь загрузки и делает HTTP-запрос в режиме ожидания

Я буду обслуживать данные в виде сжатых фрагментов, скажем, по 50 МБ каждый, поэтому накладные расходы HTTP-запроса (заголовки) незначительны.

Если бы я использовал веб-сокеты для запросов и push-уведомлений, будет ли:

  • Заметное общее улучшение скорости? (уменьшение задержки, аутентификации и т. д. )
  • Дополнительные накладные расходы на сервер для поддержания соединений открытыми?
  • Проблемы с отправкой двоичных данных?

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

Примечание: Эти веб-узлы будут открыты долгое время, пока включена система клиента.

РЕДАКТИРОВАТЬ: Я буду использовать веб-узлы на другом http-сервере на разных портах, чтобы переместить их на разные ядра ЦП. Я потенциально могу открыть тысячи (если не сотни тысяч) одновременных веб-сокетов ...

8
задан beatgammit 4 April 2011 в 18:17
поделиться