HttpSessionListener  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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 ?

dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

ja consegui, vlw.
carlosmacieljrpe
Thread.start()

Membro desde: 25/07/2006 20:56:52
Mensagens: 40
Offline

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!
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

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

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
carlosmacieljrpe
Thread.start()

Membro desde: 25/07/2006 20:56:52
Mensagens: 40
Offline

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.
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

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

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team