Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a maneira mais fácil de determinar se um usuário está online? (PHP/MYSQL)


Não se preocupe em descobrir as diferenças entre os fusos horários. Isso não é necessário.

Sempre que o usuário acessar uma página, atualize um campo em seu registro da última atualização da tabela Usuários. Em seguida, faça uma consulta para todos os usuários com horário da última atualização nos últimos 5 minutos. Qualquer coisa além disso, e eles são considerados "offline".

Se você usar o horário do servidor, por meio da função NOW() no MySQL, você contornará o cálculo das diferenças entre os fusos horários.

Essa é a maneira padrão de rastrear quantos usuários estão online no momento (ou seja, ativos nos últimos minutos).

Atualizado constantemente


Se você quiser saber que eles ainda estão ativos mesmo quando não estão pulando de página em página, inclua um pouco de javascript para pingar seu servidor a cada 60 segundos ou mais para que você saiba que eles ainda estão ativos. Ele funcionará da mesma maneira que minha sugestão original, mas atualizará seus registros sem exigir que eles naveguem freneticamente em seu site pelo menos uma vez a cada cinco minutos.
var stillAlive = setInterval(function () {
    /* XHR back to server
       Example uses jQuery */
    $.get("stillAlive.php");
}, 60000);