0

Como saber se um usuario ainda esta no site?

criado por Lauro Assis Lima de Brito em 14/02/2003 10:48pm
Tempos atrás eu fiz esta pergunta aqui nao lembro em que seção e agora estou precisando dessa informação e não consegui localizar. É o seguinte estou desenvolvendo um chat para o meu portal e todo usuário é cadastro na entrada via mysql e como tem várias formas dele sair do chat, fechando a janela por exemplo, eu precisaria estar verificando cada refresh se os usuários cadastrados ainda estão online e excluir aqueles que não estão mais online.
Se alguém souber onde está a resposta ou saber, por favor, depois que terminar o chat, eu pretendo colocá-lo aqui a disposição da comunidade.

Lista de Respostas:

0
15/02/2003 12:06pm
(~21 anos atrás)
João K. respondeu:
O processo que uso para saber se o usuário está logado é armazenar no DB, o horário da última ação do usuário. A cada ação você iria dar um update na tabela de sessão, na coluna horário.

Mas você precisa criar um timeout no sistema (um limite de tempo), tipo 5 minutos, que iria CASO o usuário não realizar nenhuma ação então deve ser considerado fora do site. E assim eliminar o registro da sessão no banco de dados.

Essa é a idéia por trás daqueles Usuários OnLine nos programas de fóruns.

0
16/02/2003 12:57pm
(~21 anos atrás)
A idéia do Calvin acho a melhor opção... E te aconselho a criar uma classe, para que da próxima vez que você precisar utilizar algo parecido já tenha tudo pronto....

0
17/02/2003 6:18am
(~21 anos atrás)
Soh pra dar uma incrementada na resposta do Calvin.... qdo vc armazenar se o fulano esta on-line... salve tbm seu ip no banco... eh mais uma informação para lhe auxilar.

0
17/02/2003 1:52pm
(~21 anos atrás)
Valeu pelas dicas, eu ja estou usando o login do usuario no banco de dados e timeout também, só que em ASP a tente tem uma chamada if response.isclientconnect que informa naquele instante se o usuario ainda esta conectado ou abandonou. Isso tb não é tão importante, so que exige um controle maior. Vem amigos, da uma visitada no portal www.labdesign.d2g.com. O chat ainda tem aquele refresh chato que estou estudando uma alternativa para eliminá-lo, talvez uma variavel global que fosse dentro do check_form em javascript, sei la o fato é que aquele refresh é um p. nos saco!.

0
19/02/2003 7:27am
(~21 anos atrás)
Lyma respondeu:
Soh pra dar uma incrementada na incrementada do Italo.... qdo vc armazenar se o fulano esta on-line... salve tbm seu id de session no banco... eh mais uma informação para lhe auxilar.

:)

0
19/02/2003 8:12pm
(~21 anos atrás)
Eu fiz tudo isso, so tem um detalhe, o usuario pode ficar inativo com a tela do chat aberto e entao ele é desconectado, mas continua mandando mensagens. Então eu excluo do bd apos o time=x mas no modulo de receive.php, caso venha alguma mensagem dele, o mesmo é restaurado no bd na mesma posição, porque tanto o id quanto o nick sao salvos por cookies. Valeu pelas dicas galera. Façam uma visita la no meu portal que ja ta quase pronto: www.labdesign.d2g.com

um abraço!

0
17/08/2005 1:54pm
(~18 anos atrás)
manda o script q vc mando pra mim to precisando de algo parecido.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)