Подтвердить что ты не робот

Мгновенные уведомления, такие как Facebook

Я создаю социальное приложение и задаюсь вопросом, как facebook достигает своих уведомлений. Как вы знаете, уведомления facebook мгновенно. Как только кто-то принимает меры, люди уведомляются.

Я предполагаю, что у них нет запроса, запущенного в базе данных все время.

Может кто-нибудь указать мне в правильном направлении. Благодаря

4b9b3361

Ответ 1

Поскольку ваш вопрос помечен С#, ASP.NET, вы должны использовать удивительную библиотеку SignalR. В основном SignalR позволяет отправлять push-уведомления клиентам. В какой именно основной метод, который он использует, влияют возможности сервера и клиента.

Существует большой сайт чата реального времени, называемый jabbR, который построен поверх SignalR:

http://jabbr.net/

Вот еще несколько ссылок, которые вы должны начать.

Ответ 2

Facebook использует протокол обмена сообщениями (который он разработал) под названием Thrift. Это позволяет отправлять уведомления клиентам на серверы с очень низкой задержкой. Я бы предположил, что обновления на сервере будут запускаться в зависимости от действия пользователя, и соответствующие пользователи, которые вошли в систему, будут уведомлены одним и тем же механизмом.

Используя протокол обмена сообщениями, такой как бережливость (см. также Буферы протокола), клиентам не нужно проверять сервер на наличие обновлений, вместо этого сервер может отправлять уведомления клиентам, Для этого сервер должен иметь представление о том, кто вошел в систему в любой момент (вход, выход из системы), и из них, которые должны получать уведомления от конкретного действия клиента.

Легче сказать, чем сделать, особенно когда у вас зарегистрировано 800 миллионов потенциальных пользователей!

Ответ 3

Вы можете взглянуть на http://nodejs.org/ - это управляемая событиями модель, которая идеально подходит для "социальной сети" '/мгновенных уведомлений.

FYI: вы также можете обнаружить, что использование базы данных, отличной от SQL, например MongoDB (http://www.mongodb.org/), будет намного быстрее при запросе из БД с каждого объекта "человек" в социальной сетевой сценарий имеет свои собственные уникальные атрибуты, которые в обычной базе данных SQL трудно проектировать.