2010-01-02 4 views
8

Я немного читал про комету, а также APE.Нагрузка сервера: комета против обезьяны?

Какой из них лучше? Я хочу, чтобы пользователи видели другие пользователи, обновляемые материалы. Как Google Wave.

В кометах есть 2 версии: iframe vs ajax. какая разница, а что лучше. Я этого не понимаю.

Спасибо.

ответ

16

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

В обычных HTTP-запросах пользователь отправляет запрос на сервер, получает данные (html, scrips и т. Д.) И закрывает соединение - конец истории. В потоковой передаче соединение никогда не закрывается клиентом или сервером, существует одно соединение, разделяемое обеими сторонами.

При длительном опросе у вас есть повторяющееся соединение, ожидающее ответа. В принципе, браузер отправляет запрос на сервер и сидит там до тех пор, пока сервер не ответит (сервер отвечает только тогда, когда у него есть новые данные для клиента), тогда соединение закрывается, и браузер должен снова открыть соединение, и цикл повторяется :) Из двух, это наиболее часто используется.

Для комет в браузере обычно требуется веб-сервер, оптимизированный для большого количества долговременных HTTP-соединений, и клиент JavaScript для связи с сервером Comet. Таким образом, Ape - это устанавливаемый сервер, а комета - это парадигма, на которой она основана. Здесь у вас есть список кометных реализаций: http://cometdaily.com/maturity.html

2

Etherpad.com, супер быстрый инструмент обмена документами реального времени, используемый кометами, чтобы обеспечить обновление экрана в реальном времени от сотрудничества с другими редакторами. Компания, которая делает EtherPad (AppJet) только что куплен Google работать на Google Wave

Заканчивать http://etherpad.com/ep/about/faq

и http://code.google.com/p/etherpad/ (с открытым исходным кодом EtherPad), чтобы увидеть их реализацию.

Я голосую за комет из-за коммерческого успеха эфира и реализации волны Google с использованием кометы.

+0

но вы не ответили на вопрос. в чем разница между кометами iframe и традиционными ajax на их сайте? – ajsie

+0

Я не пытался ответить на заданный вами вопрос, который, как я знаю, типичен, так ужасно, я просто пытался сообщить вам, что Google и умные люди, такие как etherpad, выбрали комету, поэтому в этом должно быть что-то. –

1

Разве APE не является реализацией кометы? Это то, что говорится на странице продукта.

+0

Так что же такое комета? технология для APE и Etherpad? Comet = обратный ajax? – ajsie

2

Взгляните на WebSockets. Chrome и более новые Firefox уже поддерживают его. Вы можете вернуться в комету, когда вам это действительно нужно в других браузерах.

7

Комета = Зонт термин для технологии также известной как "Reverse Ajax" или "длинный опрос"

APE = реализацию технологии Comet.

Вы можете думать о том, что комета является некой маркой автомобиля, а APE - моделью.

Смотрите также:

http://en.wikipedia.org/wiki/Comet_%28programming%29

http://www.ape-project.org/ajax-push.html

1

Я думаю, вы хотите сравнить методы на основе IFrame с методами Ajax (XMLHttp).

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

  1. Сделать запрос на сервер
  2. При получении ответа читать ответ и сделать еще один запрос

Сервер может удерживать запрос, если еще ничего не вернуть.

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

1

APE - это реализация кометы. Он предоставляет неблокирующие серверы ввода-вывода и клиентские библиотеки JS для внедрения системы обмена сообщениями публикации/подписки.

Сам сервер APE может быть запрограммирован с использованием серверного javascript. Код на стороне сервера, такой как PHP/Ruby/any, может передавать данные через APE, выдавая «команды» серверу APE.

Подключенные клиенты получают эти данные, слушая 'Raws'; которые представляют собой события и данные, отправленные с сервера APE клиенту.

3

Comet - это технология, APE - одна из многих реализаций. Что относительно iframe против традиционного ajax? Используйте HTML5 WebSockets везде, где вы можете его использовать.

В настоящее время все современные браузеры используют XMLHttpRequest для запросов ajax (от клиента к серверу, что-то назад и в конце). Но иногда JS-приложения отправляют файлы через iframes и все в порядке. Не все реализации XMLHttpRequests поддерживают транспорт мультипорта (Chrome и современный FF afaik). WebSockets был создан специально для комет-подобных технологий (когда клиент открывает только одно соединение и веб-сервер подталкивает некоторые данные клиенту через открытый поток или WebSocket), поэтому используйте его, если сможете.

BTW Я рекомендую вам использовать независимый веб-сервер для ваших Comet-потоков (или каналов).

P.S. Мне нравится APE.