Групповой чат при коротком опросе был бы крайне неэффективным. Это не правда в реальном времени (несколько секунд задержки, если вы не хотите нажимать на БД в каждом отдельном случае, тогда вы навредите системе)
Теперь с ajax (короткий опрос или длинный опрос) это может быть решением, но не эффективным выбором, особенно когда речь идет о масштабируемости!
Новейшая технология node.js была бы идеальным решением. Если вы не знаете, что такое узел, это довольно просто. Подумайте о неблокирующем io javascript на сервере. Теперь это потребует обучения, если вы еще не знакомы с JavaScript, но я предполагаю, что вы. Во-вторых, это вопрос php в сочетании с cakephp, который node.js полностью заменяет.
Теперь в node.js есть много фреймворков, похожих на Sinatra, Rails и некоторые другие альтернативы php. От простого каркаса на основе Sinatra до полнофункционального узла фреймворка mvc - все это.
Недавно я был чрезвычайно заинтересован в Express , который является структурой типа sinatra. Он предоставляет свою собственную систему шаблонов представления "Jade", но вы можете использовать любой другой движок, который пожелаете. Сайт дает несколько скринкастов , показывающих несколько примеров приложений и несколько учебных пособий, демонстрирующих мощь node.js и Express. Вы можете писать подробные и расширенные приложения за очень короткий промежуток времени, так как и интерфейс, и фон написаны на одном языке (javascript). Это также обеспечивает хорошую альтернативную разметку HTML.
Хотя Express - это только одна из многих платформ, я уверен, что есть одна, которая вас заинтересует. Вы можете найти вопрос стекопотока здесь .
Я нашел приложение чата, написанное на node.js, доступное на github , хотя оно больше не находится в активной разработке, но все же это хороший ресурс, чтобы посмотреть и посмотреть, как другие люди внедрили свои системы чата. .
Другим аспектом узла является инструмент базы данных. Вы можете активно выполнять запросы в узле, используя неблокирующую архитектуру io.
Есть много способов, но более эффективным является вопрос. Следует отметить, что вам нужен сервер, который поддерживает node.js, некоторые новые облачные сервисы специализируются на узле. Простой поиск в Google может найти несколько хороших.
Надеюсь, это поможет,
Daniel
РЕДАКТИРОВАТЬ: Я также забыл упомянуть, что для получения чата в режиме реального времени вы можете использовать socket.io. Хотя реальная причина использования узла заключается в том, что он предназначен для использования неблокирующим способом ввода-вывода, управляемым событиями. Он также имеет чрезвычайно малую площадь, поэтому масштабирование не является проблемой.