Как несколько клиентов могут быть уведомлены о действиях одного пользователя? Веб-каналы - PullRequest
3 голосов
/ 10 сентября 2010

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

Когда кто-то входит в систему, может ли каждый клиент получать уведомление о входе этих пользователей? Точно так же, если кто-то выйдет из системы, будет сгенерировано аналогичное уведомление. (Полезно для ведения списка онлайн-друзей).

IE: возможно ли, чтобы сервер отправил какой-то пакет каждому клиенту, или чтобы клиентский компьютер (входящий / выходящий) общался со всеми другими клиентскими компьютерами.

Просто ищу мысли на эту тему. Если вы знаете хороший фреймворк для такого рода функциональности, я хотел бы услышать об этом. На ум приходят AJAX или JQuery, но полезны ли эти технологии для такого рода вещей?

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

Ответы [ 3 ]

2 голосов
/ 10 сентября 2010

Kwwika - библиотека для таких вещей: http://kwwika.com/

"Хотите, чтобы ваша веб-страница мгновенно обновлялась при изменении содержимого? Просто добавьте KwwikTag. Затем, как только вы введете что-то в свой KwwikScreen (или опубликуете это через API Kwwika), все это увидят. опрос - новая информация сразу появляется на странице. "

2 голосов
/ 10 сентября 2010

Это возможно, но если вы подумаете об этом, было бы трудно правильно масштабировать его.Вы можете использовать что-то вроде node.js, который является http-сервером на основе JavaScript, очень просто (хотя вы можете использовать обычный сервер apache / etc, просто остерегайтесь масштабирования с подключениями).тогда вы могли бы использовать flash, веб-сокеты или длительный опрос на стороне клиента, чтобы проверить, вошел ли кто-либо в систему (есть потокобезопасная очередь, таблица базы данных или плоский файл журнала для хранения записей последних входов в систему)

Длинный опрос - это просто отправка запроса через Ajax на сервер, который не отвечает до тех пор, пока что-то не произойдет (т. Е. Будет выполнен вход в систему) или не истечет время ожидания.

2 голосов
/ 10 сентября 2010

Да. Комета предназначена для этого. Здесь - это плагин jQuery.И этот ответ может быть полезен.Или вы можете просто ajax-опросить сервер с заданной скоростью, и он будет обслуживать изменения.Сервер просто обслуживает текущее состояние, которое он держит (либо в памяти, либо в базе данных).Однако следует обратить особое внимание на случай, когда в кластере работают несколько серверов.В этом случае они должны либо реплицировать свою память, либо использовать «жесткое» хранилище (базу данных), чтобы изменения распространялись на все узлы.

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