V zásadě to funguje následovně.
Pokaždé, když uživatel provede nějakou akci (obnovení chatu, odeslaná zpráva, navštívená stránka atd.), token přidružený k uživateli (token, který je uložen na vašem serveru, například DB) se aktualizuje s aktuálním časem.
| 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 pak se rozhodnete, že uživatel je online pokud jeho token není příliš starý (5/10 minut?)
Tuto metodu můžete vylepšit, pokud používáte AJAX k odesílání pravidelného požadavku na server přibližně každou 1 minutu. Tento požadavek AJAX aktualizuje hodnotu tokenu. Tímto způsobem tedy můžete uživateli říci, že je online, i když nedělá nic jiného, než že na stránku zírá. A když skončí (zavře prohlížeč nebo kartu), periodické volání AJAX přestane fungovat, takže po 5/10 minutách je uživatel prohlášen za offline .
Hodně štěstí!