WebSockets: полезно для уменьшения накладных расходов? - PullRequest
8 голосов
/ 18 января 2012

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

Я рассматривал открытиеWebSocket для каждой поисковой «сессии», чтобы сэкономить некоторые накладные расходы.Я знаю, что это сэкономит время, но вопрос в том, действительно ли оно того стоит, учитывая эти параметры: среднее время пинга 80 мс 166 мс: время между каждым нажатием клавиши, если предположить, что пользователь печатает относительно быстро Скорость передачи в худшем случае 1 МБ / сс каждым пакетом данных, который должен быть получен при каждом нажатии клавиши, не более 1 КБ.Приложению также требуется около 30-40 мс для приведения результатов поиска в DOM.

Я обнаружил это: HTTP против веб-сокетов относительно накладных расходов , но это был другой вариант использования.

Уменьшит ли веб-сокет что-либо, кроме чисто HTTP-издержек?Сколько стоят издержки HTTP (при условии отсутствия файлов cookie и минимальных заголовков)?

Я предполагаю, что запросы HTTP открывают новый сетевой сокет при каждом запросе, тогда как WebSocket позволяет нам использовать только один постоянно,Если мое понимание верно, каковы фактические издержки открытия нового сетевого сокета?

1 Ответ

3 голосов
/ 18 января 2012

Кажется, что WebSockets обеспечивают лучшую производительность в таких ситуациях, как ваша.

Web Socked

  • маленький заголовок рукопожатия
  • полный дуплекссвязь после рукопожатия.
  • После установления соединения добавляется только 2 байта на каждый переданный запрос / ответ

Http

  • Заголовки Http отправляются вместе с каждым запросом

С другой стороны, WebSocket - это относительно новая технология.Было бы целесообразно изучить возможные проблемы, связанные с поддержкой веб-браузера.

Ссылка:

http://websocket.org/quantum.html

http://www.youtube.com/watch?v=Z897fkPn7Rw

http://en.wikipedia.org/wiki/WebSocket#Browser_support

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...