Есть ли разница между длинным опросом и использованием Comet? - PullRequest
17 голосов
/ 03 апреля 2010

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

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

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

Ответы [ 4 ]

12 голосов
/ 03 апреля 2010

Некоторые методы кометы не требуют, чтобы вы постоянно открывали новые запросы (например, скрытый скрытый iframe), идея в том, чтобы держать запрос открытым и иметь сервер периодически отправлять данные. Но это не очень хорошо работает во всех основных браузерах без (как один из авторов Википедии деликатно выразился) негативных побочных эффектов, отсюда и метод длинного опроса. Подробнее в связанной статье.

11 голосов
/ 03 апреля 2010

Как уже упоминал Марсело, Comet обычно используется для описания любых методов «потоковой передачи HTTP», включая длинный опрос. В некоторых случаях Comet может также более конкретно ссылаться на Bayeux Protocol . Например, плагин jQuery Comet имеет этот протокол. С сайта Байе:

Доставка асинхронных сообщений с сервера веб-клиенту часто описывается как проталкивание на сервер. Комбинация методов push-сервера с веб-приложением Ajax называется Comet. CometD - это проект Dojo Foundation для обеспечения множественной реализации протокола Байе на нескольких языках программирования.

Bayeux - это попытка стандартизировать протокол публикации / подписки с использованием методов Comet, что позволяет поставщикам клиентских и серверных библиотек создавать совместимые компоненты.

7 голосов
/ 03 апреля 2010

Comet - это общий термин для широкого спектра методов асинхронного обновления, среди которых длинный опрос - только один.

0 голосов
/ 03 апреля 2010

Если вы хотите увеличить натяжение, вы можете использовать JPE .

...