Zasadniczo te rzeczy działają w następujący sposób.
Za każdym razem, gdy użytkownik podejmuje działania (odświeżenie czatu, wysłanie wiadomości, odwiedzenie strony itp.), token powiązany z użytkownikiem (token, który jest zapisany na twoim serwerze, na przykład w bazie danych) jest aktualizowany o aktualny czas.
| User ID | Last action |
-------------------------------------
| 14 (mark) | 2012-02-09-10:34:53 |
| 56 (phil) | 2012-02-09-09:12:34 |
| 9 (john) | 2012-02-09-10:33:11 |
A potem decydujesz, że użytkownik jest online jeśli jego token nie jest za stary (5/10 minut?)
Możesz ulepszyć tę metodę, jeśli używasz AJAX do wysyłania okresowych żądań do serwera co 1 minutę. To żądanie AJAX aktualizuje wartość tokena. W ten sposób możesz powiedzieć, że użytkownik jest online również wtedy, gdy nie robi nic poza gapieniem się na stronę. A kiedy zamyka (zamyka przeglądarkę lub kartę), okresowe połączenia AJAX przestają działać, więc po 5/10 minutach użytkownik zostaje zadeklarowany offline .
Powodzenia!