живое новое сообщение

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

Для этого у нас может быть div «new_messages», который будет обновляться с помощью jQuery с помощью setInterval () и отправляет запрос, чтобы узнать, есть ли новое сообщение или нет, но если у нас есть 10.000 членов, мы не можем отправить 10.000 запросов , это может просто убить сервер !!! Я хочу, чтобы уведомление было показано для целевого участника только тогда, когда привет получил новое сообщение. что-то вроде того, что у нас может быть «прослушивание» div на нашей странице, он запускается, когда срабатывает новое сообщение.

Я также читал о триггере MySQL, но, похоже, это не будет решением для этого, поскольку это может привести к запуску другого оператора SQL в БД и не помогать показывать уведомление пользователю.

Итак, каково решение для такого сценария?

заранее спасибо

Related of "живое новое сообщение"

Вы можете взглянуть на системный вопрос PHP Comet на идеи о том, как переносить живые события с сервера на браузер. Или попробуйте изучить детали использования Websockets. Но они не очень хорошо подходят для PHP.

Но если вы хотите реализовать какой-то чат, попробуйте посмотреть http://www.phpfreechat.net/

Или вы можете использовать Long-Polling , но PHP – это не лучшее решение для всей этой проблемы, я думаю.

Лучше всего объяснить цитату, найденную здесь.

Я бы не стал делать это по многим причинам:

PHP создан для быстрого выполнения (не для ожидания). PHP заставит вас делать какой-то опрос на стороне сервера и полагаться на sleep () PHP будет потреблять вашу RAM, а также создавать нереста для каждого запроса (Apache сделает это)

Но вы можете сделать это, используя сон, опросив базу данных (или, лучше, кеш APC / Memcache).

Если вы хотите сделать что-то подобное, перейдите в некоторые технологии, которые могут обрабатывать события: Python (Tornado, gevent, eventlet, Twisted, …), Ruby (Eventmachine, …), Erlang, Scala, JavaScript на стороне сервера (node.js, …), …

Извините, если это не прямой ответ на ваш вопрос, я все же рекомендую вам попробовать сделать это в чистом PHP, чтобы посмотреть, как он себя ведет (особенно веб-сервер).