Jump to content
  • 0
Omar~

Contador de usuários online?

Question

Bom não sei nem por onde começar então vou perguntar, alguém deve saber...

 

Como eu faria um contador de quem está online?

É mostrar quantas pessoas estão online no website no momento.

 

Bem eu pensei em fazer o seguinte: Ao usuário logar registro no banco de dados que há mais um user online, mas e se ele simplesmente fecha o navegador e não desloga?

Ao mesmo faz parte de outra coisa que quero fazer. Detectar inatividade na página, mas isso fica a critério de outro tópico.

 

Como funciona? Esse fórum utiliza-se disso tanto mostra quem está online quanto detecta inatividade.

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

@Omar~, você não armazena simplesmente que o usuário está ativo.

Você armazena em que momento ele esteve ativo a última vez.

 

Você pode armazenar isso:

1 - Através de AJAX + setInterval, digamos, a cada minuto ou 30 segundos, se você precisa de maior precisão.

2 - Ou simplesmente em cada requisição comum você atualiza a informação de data/hora.

 

Na hora de exibir você pega os usuários que estiveram ativos nos últimos X minutos (5 por exemplo).

 

Para fins de performance, você deveria varrer essa tabela periodicamente para remover registros antigos.

  • Obrigado! 1

Share this post


Link to post
Share on other sites
  • 0
1 hora atrás, Matheus Tavares disse:

@Omar~, você não armazena simplesmente que o usuário está ativo.

Você armazena em que momento ele esteve ativo a última vez.

 

Você pode armazenar isso:

1 - Através de AJAX + setInterval, digamos, a cada minuto ou 30 segundos, se você precisa de maior precisão.

2 - Ou simplesmente em cada requisição comum você atualiza a informação de data/hora.

 

Na hora de exibir você pega os usuários que estiveram ativos nos últimos X minutos (5 por exemplo).

 

Para fins de performance, você deveria varrer essa tabela periodicamente para remover registros antigos.

 

Entendi, ótima sugestão.

Mesmo que o usuário faça o login eu entre por permanência de conexão, lanço um registro pegando a time() daquele momento e aumentando +1 no contador.

E a cada X intervalo de tempo faço a atualização da tabela.

 

Sobre registros antigos, é simples automatizar a limpeza. Todo registro deve conter sua data de inscrição, ao inserir um novo, se houver quantidade X de registros já existentes, é só fazer um delete no que for mais antigo pegando o valor da data. (Fiz isso a algum tempo em um Chat-Box).

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.