sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es la forma más fácil de determinar si un usuario está en línea? (PHP/MYSQL)

No se moleste en averiguar las diferencias entre las zonas horarias. Eso no es necesario.

Cada vez que el usuario acceda a una página, actualice un campo en su registro de la tabla Usuarios, última vez que se actualizó. Luego haga una consulta para todos los usuarios que tengan una hora de última actualización dentro de los últimos 5 minutos. Algo más que esto, y se consideran "fuera de línea".

Si usa la hora de su servidor, a través de la función NOW() en MySQL, evitará calcular las diferencias entre zonas horarias.

Esta es la forma estándar de rastrear cuántos usuarios están actualmente en línea (es decir, activos en los últimos minutos).

Actualizado constantemente

Si desea saber que todavía están activos incluso cuando no están saltando de una página a otra, incluya un poco de javascript para hacer ping a su servidor cada 60 segundos más o menos para informarle que todavía están vivos. Funcionará de la misma manera que mi sugerencia original, pero actualizará sus registros sin necesidad de que naveguen frenéticamente por su sitio al menos una vez cada cinco minutos.

var stillAlive = setInterval(function () {
    /* XHR back to server
       Example uses jQuery */
    $.get("stillAlive.php");
}, 60000);