How to know if the user is still online on the web

2020-03-28 15:54发布

问题:

I am building a chat system in an asp.net MVC website, if the user has no actions on the website for more than 2 minutes I will set his status to away.
My question is, how to know if the user is offline, offline means he closed the website or signer out.

I knew that there is an isOnline property in the Membership classes but I am not using Membership for secure login in this website.

Is there a way to know if the user is online or not,
Or how this membership.IsOnline is implemented to make the same in my code.

回答1:

To know if the user is on the site, you could send an AJAX request every minute from the client to the server and server-side check the time between the received requests to see if he is no longer on the page.

If you want to the detect if the user is "AFK" but might still have the website opened on his browser, you'll have to add global events for key presses, mouse presses and mouse move, and only send the AJAX request each minute if there has been one of those event fired in the last minute.