Fool-Proof Group Chat в PHP - PullRequest
       2

Fool-Proof Group Chat в PHP

0 голосов
/ 25 марта 2012

Я пытаюсь реализовать функциональность группового чата (только групповой чат) с использованием Ajax, PHP, MySql.

Что я пробовал до сих пор:

1 - короткий опрос Ajax с кэшированием для уменьшения количества обращений к базе данных. Но это отклонено числом разработчиков, потому что число http запрос.
2- Длинный опрос Ajax, который является неплохой идеей, но он не работает с IE, даже если я сделал каждый запрос ajax уникальным.

Поэтому, пожалуйста, дайте мне какое-нибудь решение, чтобы я смог реализовать функциональность группового чата в моем проекте. Я открыт для новых предложений по реализации группового чата.

1 Ответ

1 голос
/ 25 марта 2012

Групповой чат при коротком опросе был бы крайне неэффективным. Это не правда в реальном времени (несколько секунд задержки, если вы не хотите нажимать на БД в каждом отдельном случае, тогда вы навредите системе)

Теперь с 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. Хотя реальная причина использования узла заключается в том, что он предназначен для использования неблокирующим способом ввода-вывода, управляемым событиями. Он также имеет чрезвычайно малую площадь, поэтому масштабирование не является проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...