HTML 5 Websockets заменит Comet?

Похоже, что веб-сокеты в HTML 5 станут новым стандартом для push-уведомлений сервера.

Означает ли это, что хакерский хакерский сервер под названием Comet устареет?

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

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


person never_had_a_name    schedule 08.08.2010    source источник


Ответы (6)


Означает ли это, что хакерский хакерский сервер под названием Comet устареет?

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

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

Все зависит от того, что для вас значит «скоро». Например, ни одна из версий Internet Explorer (до IE 9) еще не поддерживает WebSockets API.


ОБНОВЛЕНИЕ:

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

person Daniel Vassallo    schedule 09.08.2010
comment
-1; хотя WebSockets способны заменить решение этих проблем на стороне client, он не заменит необходимость на стороне server, и до тех пор, пока 1) все основные браузеры и 2) все http его поддерживают прокси, он не устареет; даже тогда я ожидаю, что хаки останутся для обратной совместимости - person jvenema; 12.08.2010
comment
@jvenema: Да, я согласен с вашим ответом. Тем не менее, мой ответ не следует рассматривать как исчерпывающее объяснение темы, даже если он был выбран OP как принятый. Я также верю, что кометные хаки и другие останутся здесь надолго. - person Daniel Vassallo; 12.08.2010
comment
@jvenema: Я также удалил Да из своего ответа, который, как мне кажется, вводил в заблуждение :) ... Я не собирался говорить, что комета скоро устареет, но что WebSockets пытается улучшить концепцию двунаправленного коммуникация. - person Daniel Vassallo; 12.08.2010
comment
Справедливый; Я поддержал ваши комментарии, потому что вы правы в своем ответе, но я должен оставить отрицательный ответ, потому что он был принят, но на самом деле неверен;) - person jvenema; 01.09.2010

Эта головоломка состоит из 2 частей:

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

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

Q: Будет ли нужна серверная часть «кометы»?

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

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

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

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

[Обновление, 23.02.11]

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

person jvenema    schedule 11.08.2010
comment
Спасибо, что обновили свой ответ. Считал это полезным. - person mak; 15.03.2011
comment
Google - лучшие друзья разработчика. Firefox и IE никогда не обновляются автоматически, поэтому я едва вижу более 50% пользователей, имеющих поддержку WebSocket, даже в 2012 году. (Все переходят на хром!) - person Zippo; 27.05.2011

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

Оформить заказ Orbited и Hookbox.

person Salman Haq    schedule 09.08.2010

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

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

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

person ggarber    schedule 09.08.2010

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

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

Да, потому что "скоро" - очень скользкое слово ...

person Marcelo Cantos    schedule 08.08.2010
comment
о каких фреймворках вы имеете в виду? но разве доступные сегодня фреймворки не используют только комету? - person never_had_a_name; 09.08.2010
comment
@ajsie: Современные платформы поддерживают асинхронную отправку с сервера в браузер. Многие из них уже поддерживают HTML 5 с переходом на комету, так что вам не нужно особо заботиться о том, как они этого добиваются. - person Marcelo Cantos; 09.08.2010
comment
@marcelo. но я не понимаю. эти рамки - просто серверы? мне все еще нужно написать код для обработки нажатия на сервер? - person never_had_a_name; 09.08.2010
comment
@ajsie: Нет, они предоставляют клиентские биты. - person Marcelo Cantos; 09.08.2010

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

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

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

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

HTTP по-прежнему играет роль; это гибкая система, ориентированная на сообщения. websockets был разработан для обеспечения двунаправленности и полного исключения длинных вопросов опроса. [у него это хорошо получается]. но это проще, чем http. и в http. несомненно, будет продолжаться прогресс, обогащающий двунаправленную коммуникацию http, будь то комета или другие push-технологии. моя собственная скромная попытка - [http://github.com/rektide/pipe-layerBlockquote].

person rektide    schedule 23.09.2010