Думаю интегрировать чат внутрь уже написанного и работающего php приложения. Поскольку мне еще нужно выбрать реализацию чата, я покажу вам некоторые соображения:
- PHP не подходит для приложения Comet. Сервер кометы php для управления чатом не будет хорошо масштабироваться, поэтому это не мой первый выбор.
- Node.js + Socket I/O в конечном итоге может стать хорошим вариантом для движка чата.
- AMQP (RabbitMQ?) может быть еще одним, возможно, хорошим решением, не исключительным для node.js, поскольку они могут довольно хорошо интегрироваться.
Основная проблема заключается в следующем: как избежать дублирования кода и бизнес-логики? Есть некоторые аспекты, которые я хотел бы отметить:
- Приложение управляет пользователями в стиле RBAC. Пользователи должны иметь возможность общаться с другими пользователями в зависимости от их роли (и некоторых других бизнес-логик). Было бы сложно (и плохая практика imo) дублировать эту логику.
- Если я использую два разных серверных процесса (как я думаю) для обмена мгновенными сообщениями и приложения, как я могу управлять сеансом http?
Вкратце: IM будет тесно связан с бизнес-логикой, поэтому мне действительно нужно избегать дублирования кода/логики, но в то же время мне не нужен механизм чата PHP.
Заранее спасибо.