Executando verificação de segurança...
25

🟢 Usuários ativos em tempo real 👨🏻‍💻

Adicionei mais uma feature ao projeto open-source que estou desenvolvendo (Syki).

Agora é possível verificar quais usuários estão ativos e quantas conexões cada um está estabelecendo com o servidor, tudo isso em tempo real!

Como funciona?

Uma conexão WebSocket é aberta toda vez que o usuário acessa o sistema via navegador. No backend, o servidor possui um dicionário em memória que armazena, para cada usuário online, uma lista com suas conexões abertas. Quando um usuário abre/fecha uma aba, o servidor atualiza sua lista de conexões. Se a lista de um usuário fica vazia, ele é marcado como offline.

O frontend do sistema é feito em Blazor e o backend em ASP.NET. Utilizei a biblioteca SignalR para gerenciar as conexões WebSocket e identificar os usuários.


Acompanhe abaixo como o Adm do sistema pode facilmente verificar quais usuários estão online, bem como quantas conexões cada um está estabelecendo com o servidor.

* Essa abordagem funciona para um único servidor. Em uma configuração com 2 ou mais servidores, seria preciso utilizar algum mecanismo de cache distribuído para armazenar esses dados.

Você pode ver o código aqui (https://github.com/ZaqueuCavalcante/syki) e a aplicação rodando aqui (https://app.syki.com.br). Venho postando no LinkedIn todas as atualizações de desenvolvimento do projeto (https://www.linkedin.com/in/zaqueu-cavalcante).

Carregando publicação patrocinada...
1

Que massa, sempre achei muito legal ter esse tipo de visualização para os adms de um sistema, algo que poderiam deslogar usuários, ver quais foram as suas ações dentro do sistema e etc..., aumentando o nivel de curadoria do software como um todo.

1

Legal como isso funciona, sempre bom ter um dash com essas informações.
Sugestão: Quando for divulgar algo assim com vídeo e etc. Sugiro ocultar informações de outras pessoas, no caso os sobre nomes ou o email. vai saber quem te acesso a esse forúm e vou além, o que a mente criativa de pessoas mal intecionados pensarão em utilizar esses dados...

1

Muito interessante e vital para alguns processos.

O DataStar pode ajudar através de um stack mais simples: https://data-star.dev/

No front você implementa um conjunto de 'signals' e o backend fica como está. Você só vai precisar enviar um SSE para os 'signals' e o canal estará aberto assim como no uso de WebSockets.