Протокол реального времени для веб-приложения на PHP - PullRequest
1 голос
/ 05 октября 2010

Я работаю над приложением PHP и ищу некоторые идеи для протокола реального времени, который я могу использовать для:

1) отслеживания статуса пользователей и их местоположения в приложении (это должнобудь быстрым !!!) 2) чат-система.

Я ищу что-то вроде FMS и ее «общих объектов», где несколько пользователей могут подписаться на фрагменты информации.FMS дорогой и медленный для того, что мне нужно, мне нужно, чтобы на каждой странице загружался виджет, запрашивающий новое соединение с сервером FMS и т. Д. .... медленно ...

Мне нужно что-то быстроеИсточник был бы идеальным!Что-то вроде того, что Google Waves использует для синхронизации общих документов.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Если вы хотите написать это на PHP, я бы сказал, что вы смотрите не на ту технологию. Существует две основные проблемы с PHP и в режиме реального времени.

  • Когда вы запускаете приложение PHP, оно не является постоянным, как сервлет с Java. Трудно и не очень приспособлено для связи между каждым соединением. Вы должны использовать хранилище базы данных, поток или файл для отправки данных между каждым экземпляром. Все эти методы не очень эффективны.

  • Используется блокирующий ввод / вывод, и это наносит ущерб производительности и масштабируемости.

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

2 голосов
/ 05 октября 2010

Вам нужны веб-розетки или что-то подобное.

http://www.orbited.org/

"Orbited позволяет создавать веб-приложения в реальном времени, такие как чат или клиент обмена мгновенными сообщениями, без использования внешних плагинов, таких как Flash или Java. Он позволяет создавать потоковые сети для JavaScript без загрузки полос или обновлений страницы." *

Вы можете реализовать чат как IRC или Jabber, используя Orbited.

...