Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite galera,
Estou com uma dúvida referente ao C#, estou criando um sistema em windows form application, sistema com controle de usuários, bom vou direto ao ponto, eu gostaria de saber se é possível verificar os usuários que estão utilizando o sistema, para mostrar os usuários online, acho que isso é possível atrás de banco de dados, porem não deve ser muito eficaz, gostaria de saber se tem alguma outra forma de fazer isso, ao em vez de usuário logou +1, deslogou -1 etc... Sou novato em C#, porem o sistema que estou criando é bem simples, mas enfim isso não importa tanto, se alguém ai puder ajudar, ou tiver algum artigo onde eu possa dar uma olhada, enfim...
E se eu estiver enganado em fazer isso utilizando o banco de dados e alguem tiver uma base de por onde começar ou alguma dica, seria bem útil. Obrigado :)
Estou com uma duvida também de como exibir para o usuario, no caso se eu utilizar esse redis que você informou, ele deve armazenar em alguma variavel neh, ai é só exibir, você já utilizou ele alguma vez? se tiver algumas dicas de como utilizar ele
Obs: eu fiz da forma tradicional porem kkk eu utilizei pra atualizar a lista de usuários online quando movimenta o mouse, mas ai fica repetindo e adicionando o mesmo nome na lista varias vezes.
O Redis é, na verdade, um banco de dados não relacional baseado em chave/valor (mais ou menos como o localStorage), não seria muito bem uma variável, você precisaria fazer uma conexão como qualquer outra.
Nesta segunda solução que você informou, isto não é muito viável, porque imagine que você pode ter 100 usuários online, e cada vez que ele mexe o mouse um novo registro é atualizado no banco de dados. Isso estouraria facilmente sua infra.
O ideal, é você setar uma linha no banco com um valor 0/1 para online e offline. Mas tudo isso precisa ter um TTL (Time to Live) que é basicamente uma expiração, que seta o valor para 0 depois de determinado tempo, e a cada tela ou clique em alguns eventos específicos setar novamente para 1 e resetar o TTL.
Muito obrigado Khaos, eu vou tentar utilizar o TTL acho é mais simples de se fazer, não sei ainda como utilizar o Redis as funções, como instalar e tudo mais kkkk vou tentar fazer hoje nas horas livres aqui qualquer coisa aviso aqui rsrsr, Da mesma forma muito obrigado
Bom, em tese todo o sistema de verificação de usuários logados usa essa mesma lógica do logou + 1 e deslogou -1, existem algumas implementações mais rápidas e mais lentas.
Acho que a melhor implementação disto é utilizar algum sistema de filas em cache (como o http://www.redis.io) para armazenar todo mundo que loga e desloga no sistema. As aplicações do tipo Windows forms possuem uma facilidade de poder controlar o evento de saída do programa, ou quando o formulários está sendo fechado, permitindo assim que você possa controlar melhor estes eventos.