2013-10-09 5 views
1

, когда user1 выбирает пользователя2 из списка пользователей, которые сейчас в сети, и отправляет сообщение пользователям2.чат-приложение с использованием php и ajax:

Отправленное пользователем сообщение будет сохранено в базе данных через ajax.

В настоящее время я делаю вызов ajax с помощью метода setInterval для получения сообщений из базы данных каждые 5 секунд. Несмотря на то, что если у пользователя2 нет нового сообщения, запрос ajax непрерывно переходит на сервер каждые 5 секунд. Это увеличивает нагрузку на сервер.

Есть ли способ обновить сообщение пользователю2, только если пользователь2 получит сообщение, это уменьшит количество запросов, отправленных на сервер.

+0

Вы беспокоились об этом Google? Вы не были бы первым человеком с этой идеей. –

+0

Посмотрите [PHP Long Polling] (http://stackoverflow.com/questions/333664/simple-long-polling-example-code) – SpYk3HH

ответ

1

Посмотрите на Node.js и socket.io (плагин для node.js). Это не слишком сложно, если вы знаете свой путь вокруг JavaScript и PHP, но он позволяет поддерживать живое соединение между сервером и клиентом и передавать данные взад и вперед в режиме реального времени. Его обширный, чтобы дать полный пример того, как это будет работать, потому что реализация будет несколько специфичной для приложения. Есть несколько руководств для реализации чата с помощью node.js. Сделайте несколько поисковых запросов, я смог реализовать его после нескольких дней исследований.

Это поможет вам начать: http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/

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

Смежные вопросы