Mysql
 sql >> Database >  >> RDS >> Mysql

Controlla se l'utente è sulla pagina

Fondamentalmente, queste cose funzionano come segue.

Ogni volta che l'utente esegue azioni (aggiornamento della chat, messaggio inviato, pagina visitata, ecc.) un token associato all'utente (token salvato nel tuo server, ad esempio DB) viene aggiornato con l'ora corrente.

| 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 |

E poi decidi che un utente è online se il suo token non è troppo vecchio (5/10 minuti?)

Puoi migliorare questo metodo se utilizzi AJAX per inviare una richiesta periodica al server ogni 1 minuto circa. Questa richiesta AJAX aggiorna il valore del token. Quindi, in questo modo, puoi dire che l'utente è online anche se non fa altro che fissare la pagina. E quando esce (chiudi browser o scheda), la chiamata periodica AJAX smette di funzionare, quindi dopo 5/10 minuti l'utente viene dichiarato offline .

Buona fortuna!