| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 11:20:08
|
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 ?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 16:09:30
|
dricorj
Thread.start()
Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline
|
ja consegui, vlw.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 16:17:12
|
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!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 16:47:19
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 16:57:53
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2008 17:00:21
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
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 |
|
|
 |
|
|