Membro desde: 04/08/2004 19:47:38
Mensagens: 597
Offline
fala galera seguinte... to com um probleminha
to fazendo um site.. e nele eu keria q tivessem listadas as pessoas q estao online no momento. (as que estao com sessao aberta).
entao eu usei um SessionListener e para cada sessao criada ele adiciona o Id da sessao no banco de dados... e qdo o usuario loga, ele reconhece a sessao com o id do usuario.
Enfim.. isso tá funcionando perfeitamente... o problema é que... quando a sessao é encerrada, ele retira o id da sessao do banco de dados.
só que o evento SessionDestroyed só está sendo gerado com o tempo limite da sessao do servidor.
A sessao nao deveria ser terminada quando o usuario fecha o browser?? ou isso é uma configuraçao do tomcat?
alguém tem alguma ideia?? tenho q acrescentar algum codigo??
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
O SessionDestroyed() somente eh invocado qdo a sessao expira mesmo. Nao ha um meio "seguro" de vc conseguir alterar os dados no momento em que o browser fecha ou o usuario sai da pagina..
Vc pode tentar alguma trick usando frames, onde, no body onunload vc invoca algum window.open que chama um codigo para desregistrar a sessao..mas eh mto suscetivel a erros, de qq maneira.
Rafael
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
Membro desde: 29/01/2003 11:36:27
Mensagens: 354
Offline
Ou..
Você pode tratar isso usando um tempo de sessão de 5min por exemplo e utilizando um sistema de cookies para que o usuário seja reconectado caso o prazo ultrapasse 30min assim você terá uma informação um pouco (no máx 5min) desatualizada, mas um pouco mais segura.