Home » Php » php – how to implement facebook like notification?

php – how to implement facebook like notification?

Posted by: admin April 23, 2020 Leave a comment


I am trying to implement a Facebook-like live notifications system to notify users whenever someone adds them as friend, like their post or posts replies to their comments.

All the database and PHP part is done, but I can’t figure out how to implement it like Facebook has.

Whenever someone likes/comments on your post in Facebook the light blue box appears at the bottom left corner of the screen. This happens as soon as someone hits like button or posts comment in Facebook. I would like to know what I should do to implement this.

Using YUI or any JavaScript framework I can query a database table after n seconds to check for notifications. This method is too heavy.

I was wondering if there is any server side mod or scripting can be done so that whenever there is new notification entry in my database table the server will tell that particular client. That way unnecessary request calls from client to server will be avoided completely and system can work efficiently for website with more than 50,000 users online at a time.

How can I achieve this?

How to&Answers:

You should look into COMET techniques, such as forever frame (tutorial) and long polling. That allows you to have a form of a server->client push communication.


I am really surprised nobody has mentioned PubNub and Pusher

These two (competitors) are building infrastructure which allows for realtime notifications, just like Facebook.


Facebook notification


You basically set a request up, like callng the service that asks your server/db for the notifications of that user. You may do a while loop that retries if theres no notification (maybe Thread.Sleep in between searches). Your js request will timeout, then you can call the function again in timeout. This means long polling afaik


The only way to do it is to have some sort of mechanism (e.g. Javascript) to repeatedly poll the server for updates. Doing server pushes to web browsers isn’t possible.