Лучший способ показывать уведомления и сообщения LIVE на веб-странице? - PullRequest
5 голосов
/ 15 января 2010

Я заинтересован в действительно хорошем способе обмена мгновенными сообщениями, как meebo, facebook и myspace, а также для уведомлений на странице. Например, на моем сайте теперь, когда пользователь получает новое почтовое сообщение, комментарий к фотографии, комментарий в профиле, запрос на добавление в друзья, некоторые другие вещи, он получает уведомление и ссылку на страницу, на которой он использует jQuery и AJAX.

В больших масштабах я считаю, что это не лучший способ сделать это, хотя мой код jquery должен будет в основном запускать скрипт PHP для запроса таблицы mysql каждые 30 секунд или около того для каждого пользователя, у которого открыта страница с этим скриптом работает. Я хотел бы в конечном итоге добавить что-то вроде обмена мгновенными сообщениями, такого как Facebook, в панели чата в нижней части экрана, если я смогу найти эффективный способ сделать это.

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

Если вы знаете некоторые хорошие решения, пожалуйста, объясните, как они работают, пожалуйста,

Ответы [ 4 ]

2 голосов
/ 20 января 2010

Вы ищете кометный сервер. Поскольку вы говорите на PHP, лучшим решением будет SaaS-решение, такое как WebSync On-Demand , поскольку у PHP возникают проблемы с масштабированием, когда речь идет о большом количестве одновременных открытых соединений. Смотри также этот вопрос .

1 голос
/ 16 января 2010

Я думаю, что Facebook использует XMPP для своего чата, поэтому взгляните на него.

XMPP составляет

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

Вы бы установили отдельный сервер для обработки сообщений, а в вашем приложении вы бы внедрили клиента с одной из доступных библиотек .

1 голос
/ 15 января 2010

Может быть, у вас есть общая очередь сообщений, которую может запросить ajax? Возможно, это php-скрипт, который хранит большую часть сообщения в memcached (и, возможно, записывает в db в случае сбоя).

Не уверен, но любопытно услышать другие решения ...

0 голосов
/ 28 января 2010

Основная проблема заключается в том, что вам необходимо внедрить сервер Comet (то есть внедрить Server Push). Стандартные веб-хосты и Apache не позволяют легко это сделать. Другое размещенное решение (кроме Web Sync) - Goldfish Server . В настоящее время бесплатно.

...