HttpSessionListener

5 respostas
D

Seguinte, criei um HttpSessionListener para saber quantos usuarios estao on-line, ate ai ta funcionando beleza. So que quando o usuario clica no ‘X’ do browser ou da ALT+F4 ou qq outra coisa eu preciso saber qual usuario que aconteceu isso pq preciso registrar no banco que ele esta desconectado.

Quando isso ocorrer eu so vou saber qdo a sessao expirar, certo ?

Entao como que eu faco no public void sessionDestroyed(HttpSessionEvent se) para saber quem foi para ai mudar no banco a flag ?

5 Respostas

D

ja consegui, vlw.

Rafael_Steil

Cada usuario tem seu ID de sessao, que é unico. Ao entrar no site, vc registra na session os dados do usuario, e quando a session é destruida, voce pega os dados no Listener e grava no banco.

Rafael

Rafael_Steil

No JForum o padrao é 10 minutos de inatividade para considerar que o usuario foi embora. Um valor mais baixo é impraticavel demais. Alias, utilizo um recusro simples para evitar que a sessao do usuario expire caso ele fique um bom tempo no site, mas sem fazer coisa alguma (lendo mensagens no forum, por exemplo): coloco um iframe que aponta para um .jsp simples, apenas para dar um “ping” na sessao.

Sobre performance, a regra geral eh nao ficar colocando coisas demais na sessao, pois isso consome ram do server.

Rafael

C

Só por curiosidade, como você resolveu isso? Me falaram que é um pouco difícil resolver essa questão em PHP. Como você fez em Java?

flw!

C

Entendi Rafael, só mais uma dúvida, como seria a forma menos custosa para verificar se o usuário está off line ou on line num site? Por exemplo se ele ficar sem utilizar/clicar o/no site por 10+ minutos? De que forma fazer isso sem prejudicar o desempenho do servidor?

Valeu.

Criado 3 de agosto de 2008
Ultima resposta 3 de ago. de 2008
Respostas 5
Participantes 3