Как реализовать комету? - PullRequest
3 голосов
/ 14 ноября 2011

Я уже некоторое время занимаюсь разработкой веб-приложений, но совсем недавно я познакомился с технологией push на стороне сервера Comet, и мое понимание этой технологии очень незрелое.В то время как ссылка http://www.zeitoun.net/articles/comet_and_php/start предоставляет две упрощенные примеры реализации с использованием бесконечного цикла в PHP, я хотел бы узнать больше о повторениях вышеупомянутых методов и о том, подходит ли он для производства.Какими преимуществами обладают выделенные комет-серверы, такие как Meteor (http://meteorserver.org/), streamhub (http://www.stream -hub.com /), freeliberator (http://www.freeliberator.com/index.php)?

). Кроме того, насколько отличается толчок на стороне сервера Comet от средства веб-сокетов HTML5?

Моя главная цель - создать вариант совместного редактирования документов в реальном времени.

1 Ответ

7 голосов
/ 17 ноября 2011

В то время как ссылка http://www.zeitoun.net/articles/comet_and_php/start предоставляет две упрощенные примеры реализации, использующие бесконечный цикл в PHP, я хотел бы узнать больше о повторениях указанных выше методов и о том, подходит ли он для производства.

Это решение является одним из факторов, который привел к осознанию того, что PHP и Comet / WebSockets не масштабируются. См:

Какие преимущества имеют выделенные комет-серверы, такие как Meteor (http://meteorserver.org/), streamhub (http://www.stream -hub.com / ), freeliberator (http://www.freeliberator.com/index.php)?

Преимущества состоят в том, что эти решения были созданы с целью обработки нескольких одновременных соединений. Они также предоставляют библиотеки, которые предлагают дополнительные функции, такие как pub / sub , которые вы, вероятно, захотите и, следовательно, должны реализовать сами. Я работал в Caplin Systems, которая создала продукт Liberator, и это высокоразвитые программные решения, полностью предназначенные для обработки и решения этого решения.

Кроме того, насколько отличается толчок Comet-сервера от возможности веб-сокета HTML5?

Ответ взят из здесь :

Comet - это общий термин, и существует много «серверов Comet» (см. ниже), которые используют WebSockets в качестве транспортного механизма, когда это возможно. Серверы Comet используют не только AJAX, XHR Long-Polling, Forever-Frame и т.д. Они теперь используют WebSockets и переходят на другой транспорт механизмы, где это необходимо.

Вот лишь некоторые из «серверов Comet», которые используют WebSockets:

Моя основная задача - создать вариант совместного редактирования документов в режиме реального времени.

Я бы рекомендовал вам не пытаться реализовать решение для Comet / WebSockets с нуля. Это очень хорошо понимаемая проблема с рядом отличных решений. И решение до сих пор не просто реализовать с нуля. Интересная проблема, которую вам нужно решить, - это синхронизация состояний между несколькими клиентами, поэтому замечательным преимуществом этих существующих технологий реального времени является то, что вы можете использовать их и сосредоточиться на создании своего приложения.

Возможно, также представляет интерес:

...