C # фильтрация сообщений наблюдателя - PullRequest
0 голосов
/ 07 апреля 2011

Я пишу видео cms и хочу, чтобы все мои пользователи отображали новые ресурсы сразу же после их входа. Если я прав, Facebook обновляет свою настенную страницу в режиме реального времени.Поэтому, когда я отправляю что-то другу, это немедленно отображается на его стенеСеть в реальном времени, как говорится.Интересно, как ты это делаешь?Не технология клиент-сервер-коммуникации, а то, что происходит на сервере.Я понимаю принципы модели наблюдателя.Но стена - это на самом деле запрос к таблице сообщений.Как наблюдатель узнает, какой запрос интересует пользователя?Содержит ли он все запросы всех подключенных пользователей и перезапускает его, когда появляется что-то новое. Я считаю, что Google-realtime работает именно так.Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Facebook использует AJAX и таймер JavaScript, который опрашивает в фоновом режиме в поисках всего, что изменилось.Другие сайты используют такой же тип функциональности для обновления биржевых котировок, встроенных в страницу и т. Д. Это не действительно обновление немедленно, оно обновляется так часто, как таймер JavaScript попадает на их сервер.Это потому, что веб-браузеры используют HTTP, который является протоколом запроса / ответа.Браузер не будет отображать ничего, что не является прямым ответом на запрос, инициированный браузером;нет возможности просто отправить контент прямо в браузер с вашего веб-сервера.

1 голос
/ 07 апреля 2011

Когда вы открываете facebook, откройте временную шкалу сценариев в своем браузере, чтобы увидеть, какие сценарии выполняются на странице. Вы заметите, что скрипт опроса выполняется несколько раз в секунду. Таким образом, страница просматривает кэш несколько раз в секунду, чтобы увидеть, есть ли какая-либо новая информация, которая может быть отображена.

http://www.ajaxwith.com/Poll-vs-Push-Technology.html - это должно дать вам представление о предмете.

...