Ir para conteúdo
  • 0
Omar~

Contador de usuários online?

Pergunta

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostas a esta questão

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

Compartilhar este post


Link para o post
Compartilhar em outros 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).

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.