2009-02-07 6 views
5

Я слышал, что я могу использовать Comet в качестве технологии push-сервера вместе с моим кодом Ajax, чтобы повысить производительность моих веб-приложений.Совместимость кометы с текущей технологией

Насколько зрелой эта технология Comet?

Поддерживается ли это всеми веб-серверами, языками программирования и браузерами?

Каковы недостатки использования кометы?

ответ

5

Это зрелый, хотя я думаю, что вы должны рассматривать его скорее как технику, чем технологию.

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

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

+0

Будет ли комета работать со всеми браузерами? Существуют ли (старые) браузеры, которые не загружают контент в DOM постепенно? – Pacerier

1

Комета использовалась до того, как все шумихи вокруг AJAX начались: это просто новое название старой идеи. Люди используют скрытые iframe, чтобы эмулировать долгое нажатие сервера без проблем.

+0

У вас есть ссылка на «работа в течение длительного времени без проблем»? Будет ли комета работать во всех браузерах? Существуют ли (старые) браузеры, которые не загружают контент в DOM постепенно? – Pacerier

2

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

Это говорит о том, что я работаю в компании, которая построила ее для интеграции с сервером, в частности с IIS.

Если вы не хотите заниматься интеграцией с сервером (работа с различными языками, масштабированием обработки и т. Д.), Проверьте websync - служба позволяет легко интегрировать любой язык, поскольку он размещен, но поддерживает proxying запросов через ваш собственный сервер, чтобы вы могли добавить свою собственную бизнес-логику, протоколирование, разрешение и т. д.