PHP Jquery: система чата, что является идеальной основой для этого? - PullRequest
6 голосов
/ 04 сентября 2011

Я хочу внедрить систему чата для моего сайта. Функциональность будет очень похожа на чат в Facebook. Чаты будут основаны один на один.

Я знаю, как построить систему чата с использованием PHP, MySql и JQuery. Но я обеспокоен тем, что в долгосрочной перспективе он не будет масштабироваться для большого числа пользователей.

Используя JQuery, я каждую секунду буду отправлять запросы на обновление окна чата или, если пользователь отправляет запрос в чат с другим пользователем. Это приведет к дополнительной нагрузке на сервер, поскольку со временем количество пользователей увеличится.

Мне сказали, что с использованием PHP это не идеальное решение, что я должен заняться программированием комет, которое я никогда раньше не пробовал.

Мой вопрос заключается в том, есть ли какие-либо предварительно построенные фреймворки, которые я мог бы использовать, или лучший подход для их построения?

Я слышал о NodeJ и APE, но они не поддерживаются моим сервером.

Спасибо, ребята.

РЕДАКТИРОВАТЬ: после разговора с моими серверами, я мог бы изменить свою ОС, чтобы я мог запустить NodeJS. Насколько хорош nodejs с точки зрения масштабируемости и будет ли он соответствовать моим потребностям?

Ответы [ 2 ]

5 голосов
/ 04 сентября 2011

PHP и Comet не являются взаимоисключающими. Комета - это просто метод выдвижения сервера, поэтому вам не нужно опрашивать ни секунды. Вы реализуете Comet в PHP & JS, это не отдельный язык программирования.

Хотя : Я НЕ рекомендую программировать чат самостоятельно, если вам не нужны очень специфические функции. Это отнимает много времени и подвержены ошибкам . Используйте одно из готовых решений, например:

http://www.phpfreechat.net/

или java IRC чат. Google для больше.

3 голосов
/ 05 сентября 2011

Как Рок Краль говорит, что комета является парадигмой и может применяться к различным технологиям. PHP & Comet - хорошее место для начала, если вы хотите разобраться в этом.

Обычно принято считать, что PHP не так хорошо масштабируется, как технология реального времени. Facebook, который является PHP-домом (хотя в итоге компилировал свой PHP до C (или, возможно, C ++) для эффективности ). Наиболее распространенное решение - использовать выделенную технологию реального времени для общения в реальном времени и хранить ее вне своего веб-сервера.

С точки зрения выбора технологии я бы рассмотрел WebSockets , поскольку они стали стандартом для двунаправленной связи в реальном времени. Некоторые серверы «Comet» также используют WebSockets в качестве транспорта и переходят на менее эффективный HTTP Streaming или HTTP Long-Polling для старых браузеров.

Если вы планируете использовать размещенный сервис и не хотите привязываться к просто функциям чата, вы хотите, чтобы в определенный момент в ваше приложение были добавлены уведомления, визуальное сотрудничество или игры в реальном времени, тогда http://pusher.com, Я работаю, предлагая размещенный сервис обмена сообщениями в реальном времени, который вы можете легко реализовать в чате.

...