@Rafael,

   Concordo em se preocupar com performance do servidor, porém, como a
requisição do pingSession() só serve para "manter" a sessão viva... no
pingSession() não tem nada. é um metodo vazio e sem retorno, então, não
teriamos sequer um nano-segundo de processamento gasto para isso... bom,
para o meu caso atendeu 100% minha necessidade. Trabalho com aproximadamente
1500 estações e está tranquilo até o momento.

@Leonardo,

  PAra dar logout você pode implementar algo que possa dar um kill na sessão
ou remover o usuário do array (caso tenha implementado da mesma forma que o
autor do artigo)


Em 1 de setembro de 2011 15:04, Leonardo Ribeiro
<leojribe...@gmail.com>escreveu:

> Quanto a sua observação de ter muitas requisições de acordo com o número de
> usuários do sistema, eu também tenho essa interrogação na cabeça
>
>
> 2011/9/1 Leonardo Ribeiro <leojribe...@gmail.com>
>
>> Rafael,
>>
>> Toda informação é válida. Eu tenho muito mais experiência em Java do que
>> em Flex e quando surgiu essa necessidade a solução do Rodrigo me pareceu e
>> parece muito interessante.
>> Quanto a usar Producer/Consumer e SharedObject eu nunca utilizei então
>> infelizmente não tenho uma opinião a respeito mas vou atrás de mais
>> informação eles.
>> De repente é uma alternativa.
>> Se puder dar uma breve explanada de como funciona o esquema de
>> Producer/Consumer e SharedObject  pra mim seria de grande valia.
>>
>> Att
>>
>>
>>
>> 2011/9/1 Rafael Bandeira Rodrigues <rafab...@gmail.com>
>>
>>> Ok isso seria um ponto, mas a verificação do estado login simultaneo da
>>> para resolver com o Producer e Consumer e o proprio SharedObject.
>>>
>>> Aqui por exemplo tenho na aplicação, a criação do producer e consumer
>>> mediante o login que é feito por RemoteObject para uma consulta SQL que me
>>> retorna os dados do login a serem guardados no SharedObject. o Producer e
>>> Consumer tem esse controle de login para o modelo SaaS. Não cheguei a testar
>>> se o login feito com um intervalo longo existe esse reconhecimento de
>>> duplicidade, alias vou testar, mas acredito que isso funcione como o
>>> controle.
>>>
>>> Enfim como falei estou só colocando minhas experiencias e tentando
>>> descobrir novos caminhos
>>>
>>>
>>> Obrigado,
>>>
>>> Rafael Bandeira Rodrigues
>>> Chief Executive Officer
>>> FlagNet - Soluções em Tecnologia
>>> http://www.flagnet.inf.br/
>>>
>>> Adobe ColdFusion 8 Certified Expert
>>> Adobe ColdFusion MX 7 Certified Developer
>>> Adobe Certified Professional
>>> Adobe Certified Instructor
>>> Adobe Certified Expert
>>> Fusebox - BRASIL
>>> http://www.fusebox.com.br/
>>> RafaBand - BlogSpot.com
>>> http://rafaband.blogspot.com/
>>> FlagNet - Twiter
>>> http://twitter.com/flagnet/
>>>
>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>>> necessário também a ação" - William Shakespeare
>>>
>>>
>>>
>>> Em 1 de setembro de 2011 14:21, Leonardo Ribeiro 
>>> <leojribe...@gmail.com>escreveu:
>>>
>>> Rodrigo,
>>>>
>>>> Entendi, mas no caso de eu precisar realmente "dar logout" no usuário
>>>> depois de certo tempo sem atividade essa abordagem não vai funfar neh?
>>>>
>>>> @Rafael
>>>>
>>>> Ele mantém o usuário no server para poder verificar no ato de um login
>>>> se tal usuário já está logado no sistema.
>>>>
>>>>
>>>>
>>>>
>>>> 2011/9/1 Rafael Bandeira Rodrigues <rafab...@gmail.com>
>>>>
>>>>> Rodrigo a título de curioside, até porque esse assunto me interessa.
>>>>>
>>>>> Do ponto de vista "funciona" eu entendi a solução, mas do ponto de
>>>>> vista "solução" imagino que gere um problema. se você faz uma requisição a
>>>>> cada 5min para cada usuário para manter ele logado, isso não pode gerar um
>>>>> problema de acessos? se eu colocar 300 usuários dentro da aplicação isso
>>>>> gera 1 ping por segundo, e me gera uma necessidade de ter um server com
>>>>> maior capacidade de processamento.
>>>>>
>>>>> Por outro lado, tirando funcionalidades como chat ou living data não
>>>>> vejo porque manter o user no server, uma vez que é possivel ter esse tipo 
>>>>> de
>>>>> recurso de login atraves do SharedObject. Exsite algum beneficio nessa
>>>>> session no server?
>>>>>
>>>>>
>>>>>
>>>>> Obrigado,
>>>>>
>>>>> Rafael Bandeira Rodrigues
>>>>> Chief Executive Officer
>>>>> FlagNet - Soluções em Tecnologia
>>>>> http://www.flagnet.inf.br/
>>>>>
>>>>> Adobe ColdFusion 8 Certified Expert
>>>>> Adobe ColdFusion MX 7 Certified Developer
>>>>> Adobe Certified Professional
>>>>> Adobe Certified Instructor
>>>>> Adobe Certified Expert
>>>>> Fusebox - BRASIL
>>>>> http://www.fusebox.com.br/
>>>>> RafaBand - BlogSpot.com
>>>>> http://rafaband.blogspot.com/
>>>>> FlagNet - Twiter
>>>>> http://twitter.com/flagnet/
>>>>>
>>>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>>>>> necessário também a ação" - William Shakespeare
>>>>>
>>>>>
>>>>>
>>>>> Em 1 de setembro de 2011 10:18, Rodrigo Valentim <
>>>>> rodrigo.valen...@gmail.com> escreveu:
>>>>>
>>>>> Sim. O Tomcat remove sua sessão apos o timer.. meu timer aqui é de
>>>>>> 5minutos... então, dessa forma o usuário pode passar 1 hora olhando pro
>>>>>> monitor e a sessão não cai devido ao metodo pingSession() que existe no
>>>>>> java... esse metodo é apenas para manter a comunicação viva... e assim, a
>>>>>> sessão também (imagine você preenchendo um formulario que só manda pro 
>>>>>> java
>>>>>> qdo acaba tudo... a sessão vai morrer, então você implementa um timer no
>>>>>> flex que faz uso do remoteObject chamando esse metodo pingSession() (ou
>>>>>> qualquer outro nome).
>>>>>>
>>>>>> Exatamente desta forma, consegui resolver meu problema para guardar o
>>>>>> usuário logado... nunca mais tive problemas com isso!
>>>>>>
>>>>>>
>>>>>>
>>>>>> Em 31 de agosto de 2011 16:11, Leonardo Ribeiro <
>>>>>> leojribe...@gmail.com> escreveu:
>>>>>>
>>>>>> @ Rodrigo
>>>>>>>
>>>>>>> Após ler as opiniões e sugestões dos colegas da lista resolvi testar
>>>>>>> a sua solução e tenho algumas perguntas:
>>>>>>>
>>>>>>> Se eu subo o tomcat e faço o login na aplicação, o usuário é colocado
>>>>>>> na sessão e se fico mais do que o tempo
>>>>>>> configurado para o timeout o usuário é retirado de (usuariosLogados)
>>>>>>> e (abaixo o log)
>>>>>>>
>>>>>>> FlexClient destruido: 63016449-9108-234B-F067-F4F2C10DD6B8 Wed Aug 31
>>>>>>> 15:53:01 BRT 2011
>>>>>>> Sessão destruida: Wed Aug 31 15:53:01 BRT 2011
>>>>>>> Sessão criada: Wed Aug 31 15:53:01 BRT 2011
>>>>>>> FlexCliente criado: 63016449-9108-234B-F067-F4F2C10DD6B8 Wed Aug 31
>>>>>>> 15:53:01 BRT 2011
>>>>>>>
>>>>>>> FlexClient e sessao destruida e recriada...
>>>>>>>
>>>>>>> Se eu continuo a não utilizar no console eu vejo o mesmo log
>>>>>>>
>>>>>>> FlexClient destruido: 63016449-9108-234B-F067-F4F2C10DD6B8 Wed Aug 31
>>>>>>> 15:59:15 BRT 2011
>>>>>>> Sessão destruida: Wed Aug 31 15:59:15 BRT 2011
>>>>>>> Sessão criada: Wed Aug 31 15:59:15 BRT 2011
>>>>>>> FlexCliente criado: 63016449-9108-234B-F067-F4F2C10DD6B8 Wed Aug 31
>>>>>>> 15:59:15 BRT 2011
>>>>>>>
>>>>>>> É isso mesmo?
>>>>>>>
>>>>>>> Outra coisa é que mesmo eu ficando tempo sem usar se eu tentar por
>>>>>>> exemplo fazer
>>>>>>> um cadastro eu consigo sem problema...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2011/8/31 Pedro Augusto Clemente de Melo <pedro.p...@gmail.com>
>>>>>>>
>>>>>>>> Leonardo,
>>>>>>>>
>>>>>>>> Há pouco mais de um mês estava com o mesmo problema. Devo te avisar
>>>>>>>> que não é algo tão trivial. Trabalho com um projeto com configurações 
>>>>>>>> bem
>>>>>>>> semelhantes ao seu (uso Flex3 ao invés de 4).
>>>>>>>>
>>>>>>>> No BlazeDS existem classes chamadas "FlexSession" e "FlexContext".
>>>>>>>> Com essas classes, no Java você consegue guardar uma referência para 
>>>>>>>> cada
>>>>>>>> instância de um cliente Flex que você tiver.
>>>>>>>>
>>>>>>>> Esta referência é por instância de browser no cliente (duas abas do
>>>>>>>> firefox são uma mesma FlexSession e duas janelas são duas 
>>>>>>>> FlexSessions, não
>>>>>>>> sei como ficaria no caso do Chrome onde você brinca com as abas 
>>>>>>>> jogando-as
>>>>>>>> de uma janela para outra).
>>>>>>>>
>>>>>>>> A partir disso é possível implementar o login, logout e o timeout
>>>>>>>> por sessão inativa. O problema é que ele só vai identificar uma 
>>>>>>>> atividade na
>>>>>>>> sessão quando houver uma requisição para o servidor. No meu caso, 
>>>>>>>> existem
>>>>>>>> formulários muito longos a serem preenchidos e a sessão dá timeout 
>>>>>>>> mesmo com
>>>>>>>> o usuário trabalhando. Não recorri à requisições esporádicas para 
>>>>>>>> manter a
>>>>>>>> sessão aberta por isto não seria escalável em produção.
>>>>>>>>
>>>>>>>> Pelo menos no Flex3 existe um evento chamado "IDLE" que pode ajudar
>>>>>>>> neste problema. Não estudei mais afundo por que tenho demandas com
>>>>>>>> prioridade maior no momento.
>>>>>>>>
>>>>>>>> Espero ter ajudado e se você achar alguma solução, por favor,
>>>>>>>> compartilhe!
>>>>>>>>
>>>>>>>> Abraço
>>>>>>>>
>>>>>>>> Em 31 de agosto de 2011 08:59, Rodrigo Valentim <
>>>>>>>> rodrigo.valen...@gmail.com> escreveu:
>>>>>>>>
>>>>>>>> Leonardo,
>>>>>>>>>
>>>>>>>>>   Certa vez precisei fazer algo parecido e funcionou....
>>>>>>>>>
>>>>>>>>> A ideia original foi essa http://www.cauirs.com.br/rafael/?p=119
>>>>>>>>>
>>>>>>>>> Porém, se tu pesquisar por controle de usuário flex no google,
>>>>>>>>> aparece outros exemplos.
>>>>>>>>>
>>>>>>>>> a forma que fiz foi mais simples. Todo usuário logado eu guardo em
>>>>>>>>> um array
>>>>>>>>>
>>>>>>>>> Em 31 de agosto de 2011 08:26, Leonardo Ribeiro <
>>>>>>>>> leojribe...@gmail.com> escreveu:
>>>>>>>>>
>>>>>>>>> Ah uma coisa que esqueci de mencionar no e-mail origial é que
>>>>>>>>>> a app usar Flex 4 + BlazeDS + Java no server (com Spring e
>>>>>>>>>> Hibernate)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2011/8/31 Leonardo Ribeiro <leojribe...@gmail.com>
>>>>>>>>>>
>>>>>>>>>>> Pessoal,
>>>>>>>>>>>
>>>>>>>>>>> Preciso implementar em uma app flex4 login e logout.
>>>>>>>>>>> o login já é feito (com menus sendo criados dinamicamente de
>>>>>>>>>>> acordo
>>>>>>>>>>> com os direitos do usuário), mas eu preciso de 2 coisas mais:
>>>>>>>>>>>
>>>>>>>>>>> 1 - guardar o usuário logado para que não seja possível logar
>>>>>>>>>>> com o mesmo usuário duas vezes (mesmo browser outra aba, outra
>>>>>>>>>>> janela
>>>>>>>>>>> do mesmo browser ou outro browser - chrome e firefox por exemplo)
>>>>>>>>>>>
>>>>>>>>>>> 2 - ter opção de logout nas seguintes situações:
>>>>>>>>>>> 2.1 - um botão "logout" na app
>>>>>>>>>>> 2.2 - ao fechar o browser
>>>>>>>>>>> 2.3 - ficar um determinado tempo sem usar a app
>>>>>>>>>>>
>>>>>>>>>>> para todos os casos de logout acima precisaria gravar um log no
>>>>>>>>>>> BD.
>>>>>>>>>>>
>>>>>>>>>>> Inicialmente não queria ter uma tabela para guardar o usuários
>>>>>>>>>>> logados,
>>>>>>>>>>> preferiria ter algum controle de sessão mesmo, se possível
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> []'s
>>>>>>>>>>> Leonardo
>>>>>>>>>>>
>>>>>>>>>>> Linux User #488650
>>>>>>>>>>> Ubuntu User #27045
>>>>>>>>>>> Mais sobre o Ubuntu em português:
>>>>>>>>>>> http://www.ubuntu-br.org/comece
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> []'s
>>>>>>>>>> Leonardo
>>>>>>>>>>
>>>>>>>>>> Linux User #488650
>>>>>>>>>> Ubuntu User #27045
>>>>>>>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>>>>> flexdev@googlegroups.com
>>>>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>>>>> Mais opções estão disponíveis em
>>>>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Atenciosamente,
>>>>>>>>>  Rodrigo Valentim
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>>>> flexdev@googlegroups.com
>>>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>>>> Mais opções estão disponíveis em
>>>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Pedro Augusto Clemente de Melo - PACM
>>>>>>>> Ciência da Computação 2007-2
>>>>>>>> (81) 8795-1112
>>>>>>>>
>>>>>>>> --
>>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>>> flexdev@googlegroups.com
>>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>>> Mais opções estão disponíveis em
>>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> []'s
>>>>>>> Leonardo
>>>>>>>
>>>>>>> Linux User #488650
>>>>>>> Ubuntu User #27045
>>>>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>>>>
>>>>>>> --
>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>> flexdev@googlegroups.com
>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>> Mais opções estão disponíveis em
>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Atenciosamente,
>>>>>> Rodrigo Valentim
>>>>>>
>>>>>> --
>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>> flexdev@googlegroups.com
>>>>>> Para sair da lista, envie um email em branco para
>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>> Mais opções estão disponíveis em
>>>>>> http://groups.google.com/group/flexdev
>>>>>>
>>>>>
>>>>>  --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> flexdev@googlegroups.com
>>>>> Para sair da lista, envie um email em branco para
>>>>> flexdev-unsubscr...@googlegroups.com
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> []'s
>>>> Leonardo
>>>>
>>>> Linux User #488650
>>>> Ubuntu User #27045
>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>>  --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> []'s
>> Leonardo
>>
>> Linux User #488650
>> Ubuntu User #27045
>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>
>
>
>
> --
> []'s
> Leonardo
>
> Linux User #488650
> Ubuntu User #27045
> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
Atenciosamente,
Rodrigo Valentim

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a