The most common solution is an activity timer. You can assume that the active user will make at least one request within the "X" time - say, 5 minutes or so.
You can apply this by placing an asynchronous aynax-type request, initiated by a timer, which starts when the page loads. For example, if you assume that all active users will make at least 1 request every 5 minutes, then each page will request a blank (but not cache) page every 4 strong> minutes. Thus, while they have a browser window open, you will always have activity from this user. Again, this is handled by asynchronous requests, and not by any reload directive. This makes it completely transparent to the user.
As an added bonus, see if you can make this ajax request pull some useful information, and not just limit licensing restrictions.
tylerl
source share