HTML 5 Websockets заменит комету?

похоже, что Websockets в HTML 5 станет новым стандартом для push-сервера.

означает ли это, что сервер push hack под названием Comet будет устаревшим?

есть ли причина, почему я должен узнать, как реализовать comet, когда Websockets скоро (1-2 лет) будет доступен во всех основных браузерах?

тогда я мог бы просто использовать Beaconpush или толкатель вместо этого до сих пор так?

6 ответов


означает ли это, что сервер push hack под названием Comet будет устаревшим?

WebSockets способны заменить Comet, AJAX, длинный опрос и все хаки, чтобы обойти проблему, когда веб-браузеры не могли открыть простой сокет для двунаправленной связи с сервером.

есть ли причина, по которой я должен узнать, как реализовать comet, когда WebSockets скоро будет доступен во всех основных браузеры?

Это зависит от того, что "скоро" означает для вас. Например, ни одна версия Internet Explorer (pre IE 9)не поддерживает API WebSockets.


обновление:

это не должно было быть исчерпывающим ответом. Проверьте другие ответы, и @jvenema это в частности, для дальнейшего понимания этой темы.


есть 2 части этой головоломки:

Q: будет ли необходима клиентская часть "кометы"?

A: Да. Даже в ближайшие 2 года вы не увидите полной поддержки WebSockets в "основных" браузерах. Например, IE8 не поддерживает его, как и текущая версия FireFox. Учитывая, что IE6 был выпущен в 2001 году, и он все еще существует сегодня, я не вижу, чтобы WebSockets полностью заменил comet в ближайшее время.

Q: будет серверная часть "кометы" необходима?

A: Да. Серверы Comet предназначены для обработки долгоживущих HTTP-соединений, где "типичные" веб-серверы этого не делают. Даже если клиентская сторона поддерживает WebSockets, серверная сторона все равно должна быть разработана для обработки нагрузки.

кроме того, как упоминал "gustavogb", по крайней мере, сейчас WebSockets не поддерживаются должным образом во многих HTTP-прокси, поэтому, пока все они не будут обновлены, нам все равно понадобится какой-то запасной механизм.

короче говоря: комета, как она существует сегодня, не уходит в ближайшее время.

Как добавленное Примечание: версии WebSockets, которые в настоящее время реализованы в Chrome и Safari, - это два разных проекта, и работа над "текущим" проектом все еще находится в очень тяжелой разработке, поэтому я даже не считаю реалистичным говорить, что поддержка WebSockets функциональна на данный момент. Как любопытство или для обучения, конечно, но не как настоящая спецификация, по крайней мере, не еще.

[Update, 2/23/11]

текущая версия Safari имеет сломанную реализацию (она не отправляет правильный заголовок), Firefox 4 только что устарел WebSockets, поэтому он не будет поставляться включен, и IE9 тоже не выглядит хорошо. Похоже, Chrome является единственным с рабочей, включенной версией спецификации проекта, поэтому WebSockets еще предстоит пройти долгий путь.


рассмотрите возможность использования библиотеки/фреймворка веб-сокетов, которая возвращается к comet в отсутствие поддержки браузера.

выезд на орбиту и Hookbox.


в среднесрочной перспективе websockets не заменит решения comet не только из-за отсутствия поддержки браузеров, но и из-за HTTP прокси-серверы. До тех пор, пока большинство HTTP-прокси не будут обновлены для поддержки соединений websockets, веб-разработчикам придется внедрять альтернативные решения на основе методов comet для работы в сетях, "защищенных" с такого рода прокси.

в коротких / средних websockets будет просто оптимизация, которая будет использоваться при наличии, но вам все равно нужно будет реализовать long-polling (comet), чтобы полагаться на то, когда websockets недоступны, если вам нужно сделать ваш сайт доступным для многих клиентов с сетями/браузерами, не находящимися под вашим контролем.

надеюсь, это будет абстрагировано фреймворками javascript и будет прозрачным для веб-разработчиков.


Да, потому что" скоро " - очень скользкий термин. Многие интернет-магазины по-прежнему должны поддерживать IE6.

нет, потому что в последнее время появилась сыпь фреймворков и серверов comet, которые будут только сделать это в значительной степени ненужным для вас, чтобы получить ваши руки грязные в подвале.

Да, потому что "только" это очень скользкий термин...


Устав [рабочая группа] рабочая группа, которой поручено websockets, двунаправленный или серверный HTTP (hybi):

описание рабочей группы

HTTP чаще всего используется в качестве протокола запроса / ответа, ведущего для опроса клиентов для новых данных или пользователей, нажавших кнопку обновления в их браузер. Последние веб-приложения находят способы общения с веб-серверами в режиме реального времени, толкая данные со стороны сервера на клиент как только он будет доступен. Однако, эти применения на present может использовать только различные механизмы HTTP (например, длинный опрос запросы) для двусторонней связи с веб-серверами.

гипертекст-двунаправленная (HyBi) рабочая группа будет искать стандартизация одного подхода для поддержания двунаправленности связь между HTTP-клиентом, сервером и промежуточным сервером организации, которые обеспечат большую эффективность по сравнению с текущим использование висячих запросов.

HTTP по-прежнему играет определенную роль; это гибкая система, ориентированная на сообщения. websockets был разработан, чтобы обеспечить двунаправленность и избежать длительного опроса. [это хорошо]. но это проще, чем HTTP. и есть много вещей, которые полезны в http. там, конечно, будет continu