@MarioJunior Perfeito, isso que ia comentar agora. (podia ter falado antes :D) Estive realizando uns testes (para entender como é o funcionamento dessas sessões no BlazeDS)
Simulação (timeout de um minuto no web.xml) Abro o exemplo no Firefox -> Criada uma sessão, criado um FlexClient Abro o exemplo em outra aba do Firefox -> Cria apenas um FlexClient (aproveita a sessão que já está aberta) Abro o exemplo no Chrome -> Criada uma sessão, criado um FlexClient (ainda não existia uma sessão aberta no chrome, por isso teve que abrir uma nova) Se eu fico fazendo requisições com o exemplo do Firefox (da 1° aba) a sessão fica aberta, e após um minuto como não teve nenhuma chamada pela sessão aberta no chrome ela é destruida. No entanto, a 2° aba do Firefox (2° FlexClient) ainda não foi destruido, pois ele compartilha a sessão com o 1° FlexClient que manteve a sessão aberta por causa da interação que a 1° aba teve. No momento que fico um minuto sem interagir com o exemplo do Firefox a sessão é destruida e leva os dois FlexClient junto.Portanto, Os FlexClients ficam "bindados" na sessão. Também achei nos docs essa explicação: "A FlexSession can also have one or more FlexClients associated with it. For example, when a SWF file that uses an HTTPChannel is opened in two tabs, two FlexClient instances are created in the BlazeDS server (one for each SWF file), but there is only one FlexSession because two tabs share the same underlying HTTP session." Agora vou implementar a lógica para não permitir os usuários conectados ao mesmo tempo, acho que com esse entendimento vai ficar bem mais fácil implementar.Essa maneira acredito que vá ficar bem seguro (não precisar contar com códigos javascripts nem registros no banco de dados - queria ficar longe disso :D). Daqui a pouco trago aqui a solução :D (espero...) On 20 jul, 16:38, Mário Júnior <[email protected]> wrote: > Os clients permancem lá pq a sessao deles ainda nao expirou. :) > Mas a junção disso, com um session e um listener deve resolver sua questao. > > []s > > Em 20 de julho de 2010 14:22, Marcelo Caser <[email protected]>escreveu: > > > > > > > Sim, vc define o timeout da sua app. > > > Em 20 de julho de 2010 14:06, RafaelViana <[email protected]> escreveu: > > > Esse FlexSessionListener tem um funcionamento semelhante ao > >> ServletRequestListener? > >> Se o usuário fechar a aplicação a sessão dele continuará aberta até > >> chegar o tempo do timeout correto? > > >> On 20 jul, 13:30, Marcelo Caser <[email protected]> wrote: > >> > Procure sobre FlexSessionListener e extenda dela uma classe para seu > >> > Listener... > > >> > Todo enveto de FlexSession o listener ira "ëscutar" então fica fácil vc > >> > remover os usuários.... > > >> > Em 20 de julho de 2010 13:00, RafaelViana <[email protected]> > >> escreveu: > > >> > > Legal ver que a discussão está rendendo :D > >> > > Muito boa algumas dicas aqui. > > >> > > Estive olhando as classes do BlazeDS, FlexClient, FlexSession > > >> > > Vi que consigo pegos todos os clientes do Flex que estão conectados: > >> > > FlexContext.getFlexSession().getFlexClients(); > > >> > > Porém, se eu fecho o browser os clientes continuam la.Então, vou > >> > > tentar implementar assim: Sessão com timeout baixo.ex: 15s, e um > >> > > polling no flex inferior a esses 15s que cria uma nova sessão > >> > > excluindo a antiga.Assim, se o usuário fechar o browser não será feito > >> > > esse polling e a sessão será invalida alguns segundos depois. > > >> > > E ai junto com isso, um listener na sessão para quando ela for > >> > > invalidada chamar algo. > > >> > > Vamos ver se funciona :D > > >> > > On 20 jul, 12:16, Marcelo Caser <[email protected]> wrote: > >> > > > Pesquise sobre HttpFlexSession, Listener, pois para resolver o > >> problema > >> > > se o > >> > > > usuário, clicou ou não em "Efetuar logoff" é preciso validar a > >> sessão com > >> > > o > >> > > > browser. Aqui trabalho com java no back-end e o controle é feito com > >> > > Filters > >> > > > e com uma classe que eu extendo de JavaAdpater para fazer o controle > >> da > >> > > > Session! > > >> > > > Em breve vou postar algo sobre isso em meu blog. Realmente há pouca > >> coisa > >> > > > sobre sessão no Flex. > > >> > > > Em 20 de julho de 2010 12:04, Vinícius Velasco < > >> [email protected] > >> > > >escreveu: > > >> > > > > Sera que não daria pra fazer assim: uma especie de chat, quando > >> ele > >> > > entrar > >> > > > > fik na lista de pessoas do chat pq geralmente os chat qdo a pessoa > >> > > fecha a > >> > > > > conexao, seja clicando em botao, fechando o browser ou até mesmo > >> > > travando a > >> > > > > aplicação em determinando tempo ele sai do chat sozinho... axo que > >> no > >> > > caso > >> > > > > do flex vc ia ter q usar RMTP... só uma ideia > > >> > > > > Em 20 de julho de 2010 11:48, Willian Zacariotto < > >> [email protected] > >> > > >escreveu: > > >> > > > > É não pensei nisso... nem Ajax deve resolver isso, só o back-end > >> > > mesmo > > >> > > > >> *De:* [email protected] [mailto:[email protected]] > >> *Em > >> > > nome > >> > > > >> de *Guilherme Sjlender > >> > > > >> *Enviada em:* terça-feira, 20 de julho de 2010 11:44 > > >> > > > >> *Para:* [email protected] > >> > > > >> *Assunto:* Re: [flexdev] Re: Apenas um usuário logado por vez > > >> > > > >> E se o browser do usuário estiver desabilitado para JS? =P > > >> > > > >> Não sei quanto a vocês, mas o princípio de uma solução só poderá > >> vir > >> > > do > >> > > > >> back-end, seja ele a línguagem que for. > >> > > > >> ^^ > > >> > > > >> Att. > > >> > > > >> Em 20 de julho de 2010 11:41, Willian Zacariotto < > >> [email protected]> > >> > > > >> escreveu: > > >> > > > >> E se colocar um js pra perguntar se o usuário deseja sair? Ou não > >> há > >> > > > >> possibilidade de usar o js pra acessar métodos no flex? > > >> > > > >> *De:* [email protected] [mailto:[email protected]] > >> *Em > >> > > nome > >> > > > >> de *Guilherme Sjlender > >> > > > >> *Enviada em:* terça-feira, 20 de julho de 2010 11:26 > >> > > > >> *Para:* [email protected] > >> > > > >> *Assunto:* Re: [flexdev] Re: Apenas um usuário logado por vez > > >> > > > >> Infelizmente não existe essa possibilidade de monitorar no flex > >> quando > >> > > é > >> > > > >> fechado o browser... > > >> > > > >> Isso só seria possível atravéz de backend em php(Uma vez vi um > >> exemplo > >> > > no > >> > > > >> blog do Eduardo Kraus como faze-lo. > > >> > > > >> É, se for feito uma validação a cada N minutos se o usuário está > >> > > logado ou > >> > > > >> não, irá funcionar mas não será da forma mais "elegante" e > >> > > "performática" > >> > > > >> concordas? =) > > >> > > > >> Mas é isso, conversando aprendemos muito mais ^^ > > >> > > > >> Att. > > >> > > > >> Em 20 de julho de 2010 11:16, Júnior Parmigiani < > >> > > > >> [email protected]> escreveu: > > >> > > > >> Perfeito Guilher, não necessáriamente deve clicar em logoff, no > >> flex > >> > > > >> conseguimos pegar quando o user fecha o navegador não conseguimos > >> ? se > >> > > > >> sim neste momento posso excluir o registro, n maneira, tbm > >> poderiamos > >> > > > >> manter um tempo que este registro vai ficar gravado etc. > > >> > > > >> mas fica registrado a dica. > > >> > > > >> abraço. > > >> > > > >> -- > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista > >> "flexdev" > >> > > > >> Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > >> Para sair da lista, envie um email em branco para > >> > > > >> [email protected] > >> > > > >> Mais opções estão disponíveis emhttp:// > >> > > groups.google.com/group/flexdev > > >> > > > >> -- > >> > > > >> ----------------------------------------------------------- > >> > > > >> Guilherme Sjlender - > >> > > > >> Desenvolvedor RIA - Flex/Java - > >> > > > >>http://site.gflex.biz - > >> > > > >> ------------------------------------------------ > > >> > > > >> -- > > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista > >> "flexdev" > >> > > > >> Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > >> Para sair da lista, envie um email em branco para > >> > > > >> [email protected] > >> > > > >> Mais opções estão disponíveis emhttp:// > >> > > groups.google.com/group/flexdev > > >> > > > >> -- > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista > >> "flexdev" > >> > > > >> Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > >> Para sair da lista, envie um email em branco para > >> > > > >> [email protected] > >> > > > >> Mais opções estão disponíveis emhttp:// > >> > > groups.google.com/group/flexdev > > >> > > > >> -- > >> > > > >> ----------------------------------------------------------- > >> > > > >> Guilherme Sjlender - > >> > > > >> Desenvolvedor RIA - Flex/Java - > >> > > > >>http://site.gflex.biz - > >> > > > >> ------------------------------------------------ > > >> > > > >> -- > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista > >> "flexdev" > >> > > > >> Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > >> Para sair da lista, envie um email em branco para > >> > > > >> [email protected] > >> > > > >> Mais opções estão disponíveis emhttp:// > >> > > groups.google.com/group/flexdev > > >> > > > >> -- > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista > >> "flexdev" > >> > > > >> Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > >> Para sair da lista, envie um email em branco para > >> > > > >> [email protected] > >> > > > >> Mais opções estão disponíveis emhttp:// > >> > > groups.google.com/group/flexdev > > >> > > > > -- > >> > > > > Vinícius Velasco > >> > > > > MSN: [email protected] > >> > > > > Skype: ircvinicius > >> > > > > Fone: 66 9206 6966 > >> > > > > Rondonópolis - Mato Grosso - Brasil > > >> > > > > "Nos seus momentos de aflição, não se envergonhe de baixar a > >> cabeça e > >> > > > > chamar por Deus!!!" > > >> > > > > -- > >> > > > > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > >> > > > > Para enviar uma mensagem, envie um e-mail para > >> > > [email protected] > >> > > > > Para sair da lista, envie um email em branco para > >> > > > > [email protected] > >> > > > > Mais opções estão disponíveis emhttp:// > >> groups.google.com/group/flexdev > > >> > > -- > >> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > >> > > Para enviar uma mensagem, envie um e-mail para > >> [email protected] > >> > > Para sair da lista, envie um email em branco para > >> > > [email protected] > >> > > Mais opções estão disponíveis emhttp:// > >> groups.google.com/group/flexdev > > >> -- > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" > >> Para enviar uma mensagem, envie um e-mail para [email protected] > >> Para sair da lista, envie um email em branco para > >> [email protected] > >> Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev > > > -- > > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > > Para enviar uma mensagem, envie um e-mail para [email protected] > > Para sair da lista, envie um email em branco para > > [email protected] > > Mais opções estão disponíveis emhttp://groups.google.com/group/flexdev > > -- > Mario Juniorhttp://blog.mariojunior.com/ > @mariojunior -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
