Наш проект имеет элементы социальной сети, биллинга, розыгрышей. Появилась необходимость переделать его под одностраничное веб-приложение, которое бы работало в реал-тайм режиме.
Клиент должен подписываться на такие события (каналы) как получение личных сообщений, получение приглашений в друзья/команду/..., получение нового контента страницы (в зависимости от того, то открыто), получение результатов розыгрыша и т. д.
Мы рассматривали ряд готовых решений comet-серверов, но выбрать один из них оказалось довольно сложно:
1. The APE Server — не нашли проектов, где используется и подтвержения о заявленных нагрузочных способностях.
2. Dklab_Realplexor. Хорош документацией и наличием API для PHP. Непонятна его надёжность и опять же тестов на нагрузоустойчивость нет; так же непонятно что у него с масштабируемостью (вроде есть, но не понятно как там всё синхронизируется)
3. MochiWeb — мощное решение на языке Erlang. Минусы — никто не знает в команде Erlang. Насколько оправдывает себя решение?
4. Решения на node.js — вроде, сейчас популярно, да и javascript программисты есть.
5. Решения на Java (glassfish, cometd, ..). Непонятно, стоит ли Java-платформу вообще использовать как comet server? Ядро проекта написано на Java, но comet-сервер явно должен жить отдельно от него.
У нас в команде имеются PHP, Javascript и Java-разработчики, поэтому хотелось бы ограничиться этими языками, при необходимости что-то допиливать или на чём-то реализовывать.
Dklab_Realplexor
несмотря на свой возраст не теряет актуальности. Запущен на сервере уже 3й год подряд и работает без сбоев (7к каналов, онлайн ~ 200 сессий). Естественно через nginx.