Comet (програмування)

Comet (у веброзробці)неологізм, що описує модель роботи яка дозволяє реалізувати постійне HTTP-з'єднання і дає можливість відправляти дані з сервера за його ініціативою без додаткового запиту клієнта.

Реалізація

Оскільки браузери та вебсервери працюють по протоколу HTTP, який для подібних з'єднань не розрахований то розробники використовують різні реалізації.

Два основні підходи

Long-polling — клієнт підключається до сервера який не закриває з'єднання доки не з'являться дані або мине час очікування. Після чого клієнт підключається повторно.

Streaming — в цьому випадку з'єднання постійно залишається відкритим і не закривається після кожної передачі даних. Цей підхід є складнішим і потребує спеціально програмного забезпечення.

Реалізувати таку модель на стороні клієнта можна з допомогою JavaScript використовуючи AJAX або IFRAME. А на стороні сервера з допомогою, практично, будь-якого вебсервера та мови програмування.

Проте, сервер в цій моделі повинен одночасно утримувати багато постійних з'єднань.

Звичайний варіант на базі Apache та PHP не зможе витримати велике число одночасних з'єднань, тому краще використовувати спеціалізовані рішення:

  • APE (http://www.ape-project.org/ [Архівовано 16 червня 2010 у Wayback Machine.])
  • Jetty (https://web.archive.org/web/20111108170514/http://jetty.codehaus.org/jetty/)
  • Cometd (http://cometd.org/ [Архівовано 11 червня 2010 у Wayback Machine.])
  • HTTP_Push_Module (http://pushmodule.slact.net/ [Архівовано 8 липня 2010 у Wayback Machine.])

Див. також

  • WebSocket — протокол двостороннього зв'язку з сервером
  • Server sent event [Архівовано 5 травня 2012 у Wayback Machine.]

Посилання

Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (квітень 2016)