Kalvaitir Posted July 18, 2014 Share Posted July 18, 2014 Boa tarde! Observei que se eu clico no fechar do navegador, o uniGui não encerra a sessão. A sessão é encerra quando ultrapassa o timeout dela. Alguém já passou por isso? Quote Link to comment Share on other sites More sharing options...
Luiz Lenhardt Posted August 6, 2014 Share Posted August 6, 2014 Olá, Este é o comportamento padrão para aplicações WEB. Qualquer aplicação WEB possui este comportamento, eu tenho experiência em desenvolvimento Java J2EE e o comportamento para as sessões é este mesmo. Você define o timeout da sessão e quando o usuário deixa de utilizar a aplicação, fecha o navegador, fecha a aba da aplicação ou fica parado em uma mesma página até o timeout ser atingido, quando o timeout é atingido a sessão é excluída. Isso não é um problema, é uma característica das aplicações WEB. O tempo ideal do timeout da sessão depende muito das características da sua aplicação. Por exemplo eu tenho uma aplicação de consulta onde os usuários entram fazem consultas e vão embora, neste caso eu defini o timeout em 5 minutos, porque eu sei q a aplicação é apenas para consulta e ninguém tem q ficar muito tempo realizando atividades demoradas. Por outro lado eu tenho outra aplicação onde os usuários utilizam a aplicação o dia todo, neste caso eu fiz com que o timeout nunca seja atingido e assim a sessão nunca termina, vc pode me perguntar, mas se um usuário entrar 10 vezes terá 10 sessões, sim, para resolver isso existe uma configuração no uniGUI esta em: ServerModule->ServerLimits->SessionRestrict Na propriedade SessionRestrict ela pode assumir os seguintes valores: -SrNone -> Sem restrição, comportamento padrão. -SrOnePerIP -> Sua aplicação aceitará apenas uma sessão por número IP. (isso pode ser um problema pois se vc estiver atrás de um firewall todas sessões terão o mesmo IP). -SrOnePerPC -> Sua aplicação aceitará apenas uma sessão por Computador, caso o usuário feche o navegador a sessão dele fica ativa, quando ele retornar o UnigGUI vai saber q tem uma sessão abandonada e vai excluir a sessão anterior e criar uma nova, com isso sua aplicação não vai explodir por causa das sessões. O Unigui é muito flexível e vc também pode programar outra forma de comportamento para as sessões, na unit ServerModule tem o seguinte evento que vc pode programar. procedure TUniMainModule.UniGUIMainModuleSessionTimeout(ASession: TObject; var ExtendTimeOut: Integer); begin if not AllowTerminate then begin ExtendTimeOut := 900000; AllowTerminate := True; end; end; Att, Luiz Quote Link to comment Share on other sites More sharing options...
Marlon Nardi Posted August 6, 2014 Share Posted August 6, 2014 http://forums.unigui.com/index.php?/topic/2967-kill-a-session-when-browser-is-closed/?hl=sessionclosed&do=findComment&comment=13714 Quote Link to comment Share on other sites More sharing options...
Kalvaitir Posted August 13, 2014 Author Share Posted August 13, 2014 Obrigado, eu setei a propriedade TerminateOnBrowserClose = True no UniMainModule! E deu certo! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.