Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Instant notifications like Facebook

Tags:

c#

asp.net

I am building a social application and was wondering how facebook achieve their notifications. As you know, facebooks notifications are instant. As soon as someone takes an action, people are notified.

I assume they don't have a query running on the database all the time.

Can someone point me in the right direction. Thanks

like image 791
Wesley Skeen Avatar asked Jul 10 '12 08:07

Wesley Skeen


2 Answers

Since your question is tagged with C#, ASP.NET you should use the awesome SignalR library. Basically SignalR enables you to send push notifications to the clients. Which exact underlying technique it uses is influenced by the capabilities of the Server and the Client.

There is a big real time chat site called jabbR that is built on top of SignalR:

http://jabbr.net/

Here are some more links that should get you started.

  • Project site: http://signalr.net/
  • Hosted Code (Open Source): https://github.com/SignalR/SignalR
  • Wiki: https://github.com/SignalR/SignalR/wiki
  • Projects using it: https://github.com/SignalR/SignalR/wiki/Projects-Using-SignalR
like image 72
Christoph Avatar answered Oct 17 '22 19:10

Christoph


Facebook uses a messaging protocol (which it designed) called Thrift. This allows notifications from clients to servers with very low latency. I would imagine updates on the server would be triggered depending on the user action and relevant users that are logged in would be notified by the same mechanism.

Using a messaging protocol such as thrift (also see Protocol buffers) clients don't have to poll the server for updates, instead the server can push notifications to clients. To do this the server needs to have a notion of who is logged in at any one time (Login, logout handshaking) and of them, who should receive notifications from a particular client action.

Easier said than done, especially when you have 800 million potential users logged in!

like image 32
Dr. Andrew Burnett-Thompson Avatar answered Oct 17 '22 18:10

Dr. Andrew Burnett-Thompson