Problematica discussa già più volte, non si può fare.

Anche su questo forum (e in tutti gli altri forum) se ci fai caso, un utente che chiude il browser risulta comunque online fino al seguente refresh del sistema.

Quindi devi prevedere una funzione che viene eseguita ogni tot tempo e che ti tenga aggiornata la situazione degli utenti online.
Ovviamente puoi fare che la funzione si avvii ogni secondo in modo da avere un aggiornamento quasi in tempo reale, ma questo creerebbe un gran carico al server, l'intervallo dovrà essere più lungo e commisurato al carico effettivo che il server deve sostenere.