13/03/2026
Apache com SSL: servidor web seguroConfigurar Apache no Ubuntu e ativar HTTPS com certificado SSL para hospedar sites e apps.
Artigos
Artigos · 13/09/2025
Troca de dados em tempo real entre Angular e ESP: sensores, relé e feedback via socket.
ideia da materia
mandar dados para esp, receber dados de esp
(Exemplificado)
- Vamos ler sensor de temperatura
- E mandar dados para deseligar RELE - Retorna por meio do socket se correu tuddo bem
Em um mundo onde a informação precisa fluir instantaneamente, a atualização em tempo real deixou de ser um diferencial para se tornar uma necessidade. Desde dashboards de monitoramento até sistemas de chat, a capacidade de ver mudanças acontecendo na tela sem precisar apertar o botão "atualizar" transformou a experiência do usuário.
Neste artigo, vou compartilhar minha experiência construindo um Dashboard em Tempo Real que exibe dados de sensores, vendas e métricas do sistema, tudo atualizando automaticamente através de WebSocket. O melhor? Você pode acessar o código completo no GitHub e usar como base para seus próprios projetos!
Imagine que você está desenvolvendo um dashboard para monitorar a temperatura de um data center. Com o modelo tradicional HTTP, você teria duas opções não ideais:
É aqui que entra o WebSocket e sua implementação mais elegante: o Socket.IO.
Socket.IO é uma biblioteca que permite comunicação bidirecional em tempo real entre cliente e servidor. Pense nela como uma linha telefônica sempre aberta entre o navegador e o servidor - qualquer um dos dois pode iniciar uma conversa a qualquer momento.
Embora WebSocket seja o protocolo subjacente, Socket.IO adiciona superpoderes:
O projeto que desenvolvi segue uma arquitetura cliente-servidor clássica, mas com o poder da comunicação em tempo real:
O servidor é responsável por:
A mágica acontece aqui: Ao invés de esperar o cliente pedir dados, o servidor os envia proativamente:
O cliente Angular:
Quando você abre o dashboard, acontece o seguinte:
Imagine o seguinte cenário:
Servidor detecta: "Temperatura subiu para 28°C"
⬇️ Em menos de 10ms
Cliente recebe: Evento "dados-sensores" com os novos valores
⬇️ Instantaneamente
Gráfico atualiza: Nova linha aparece no gráfico sem reload

Tudo isso acontece sem que o usuário perceba qualquer lag ou atualização forçada. É mágico!
Uma das vantagens do Socket.IO é a capacidade de criar canais específicos. No projeto, usei:
historico-sensores: Dados iniciais ao conectardados-sensores: Atualizações em tempo real de sensoresdados-vendas: Notificações de novas vendasdados-metricas: Métricas do sistemasolicitar-dados: Permite ao cliente pedir dados sob demandaExemplo de como isso funciona:
// Cliente ouve o canal de sensores
socket.on('dados-sensores', (dados) => {
// Atualiza o gráfico com os novos dados
this.atualizarGrafico(dados);
});Simples, não? O poder está na simplicidade!
Para tornar os dados compreensíveis, integrei a biblioteca ng2-charts (wrapper Angular do Chart.js). Os gráficos atualizam suavemente conforme os dados chegam:
Mostra temperatura e umidade ao longo do tempo. Cada novo dado é adicionado à direita, criando uma linha contínua. Quando atinge 20 pontos, remove o mais antigo (sliding window).
Acumula vendas por produto. Se "Produto A" vende 10 unidades agora e mais 5 daqui a pouco, o gráfico automaticamente soma para 15.
Cards coloridos que pulsam a cada atualização, mostrando CPU, memória, usuários ativos, etc. Barras de progresso animadas dão contexto visual imediato.
Este tipo de arquitetura serve para muito além de demonstrações. Veja onde você pode aplicá-la:
Não acumule dados infinitamente no frontend. Use uma janela deslizante (ex: últimos 20 pontos) para não sobrecarregar a memória do navegador.
Sempre desconecte o Socket.IO quando o componente for destruído. No Angular, use ngOnDestroy() para isso:
ngOnDestroy() {
this.socket.disconnect();
}Mostre ao usuário quando ele está conectado ou desconectado. Um simples badge colorido melhora muito a UX.
WebSocket pode cair. Implemente:
ChangeDetectionStrategy.OnPush no Angular para otimizar re-renderizaçõesNunca confie cegamente nos dados do Socket.IO:
Para produção com muitos usuários:
Vamos aos números reais. Para um dashboard que precisa atualizar 3 métricas diferentes:
Resultado: WebSocket é aproximadamente 22x mais eficiente em uso de banda e 20-200x mais rápido em latência!
Problema: E se o cliente desconectar e perder dados?
Solução: Implementei histórico inicial. Ao reconectar, o servidor envia os últimos 20 registros, garantindo que o cliente sempre esteja contextualizado.
Problema: Sensores, vendas e métricas atualizam em frequências diferentes.
Solução: Criei intervalos separados no servidor para cada tipo de dado, cada um com seu próprio setInterval(). Simples e eficiente.
Problema: Gráficos acumulando dados infinitamente.
Solução: Implementei sliding window - ao adicionar novo ponto, removo o mais antigo se passar do limite.
Problema: Angular e Node.js rodando em portas diferentes.
Solução: Configurei CORS tanto no Express quanto no Socket.IO, especificando exatamente quais origens podem conectar.
O projeto está organizado de forma modular e escalável:
backsockt/)app-angular-socket/)Quer experimentar? O código está 100% open source no GitHub:
[Link do Repositório] (Adicione aqui o link do seu GitHub)
1. Clone o repositório
git clone [seu-repo]
cd angular-socket2. Instale dependências
# Backend
cd backsockt && npm install
# Frontend
cd ../app-angular-socket && npm install3. Inicie os servidores
# Terminal 1 - Backend
cd backsockt && npm start
# Terminal 2 - Frontend
cd app-angular-socket && ng serveAcesse http://localhost:4200 e veja a mágica acontecer!
Este projeto é uma base sólida, mas há muito espaço para evolução:
Comecei querendo implementar tudo de uma vez. Aprendi que é melhor começar com o básico funcionando e iterar.
Escrevi a documentação enquanto desenvolvia. No futuro, quando eu (ou outros) revisitar o código, isso será ouro.
De nada adianta ter WebSocket super rápido se a interface confunde o usuário. Investi tempo em UX e valeu a pena.
Inicialmente, os gráficos ficavam lentos com muitos pontos. Limitar a 20 resolveu completamente.
Simulei conexão lenta, desconexões abruptas, múltiplos clientes. Descobri bugs que nunca apareceriam em localhost.
Construir aplicações em tempo real parece intimidador no começo, mas com as ferramentas certas (Socket.IO + Angular), torna-se surpreendentemente acessível. A satisfação de ver dados fluindo na tela em tempo real, sem delays ou reloads, é indescritível.
Este projeto demonstra que você não precisa ser um expert em WebSocket para criar algo poderoso. Com conhecimentos básicos de Node.js e Angular, você já pode construir dashboards profissionais que impressionam.
✅ Socket.IO simplifica WebSocket: Reconexão automática e fallbacks inteligentes
✅ Performance é real: 22x menos banda e 20-200x mais rápido que polling
✅ Casos de uso infinitos: IoT, finanças, saúde, analytics e muito mais
✅ Experiência do usuário transforma: Ver dados atualizando ao vivo é outra realidade
✅ Open source acelera aprendizado: Código disponível para estudar e adaptar
Estou constantemente melhorando este projeto e adicionando novos recursos. Se você:
Vamos juntos explorar o poder das aplicações em tempo real!
Samuel Lisboa Desenvolvedor Full Stack especializado em soluções tecnológicas inovadoras
🏢 MiStarts - Soluções Tecnológicas Transformando ideias em realidade através da tecnologia
📧 Contato: samuellisboa97@gmail.com 🌐 Website: mistarts.com.br 📱 WhatsApp: +55 75 99846 0383
Para aprofundar seus conhecimentos:
📚 Documentação Oficial:
🎓 Tutoriais Recomendados:
📖 Artigos Relacionados:
Tags: #WebSocket #SocketIO #Angular #RealTime #NodeJS #Dashboard #WebDevelopment #JavaScript #TypeScript #IoT
Código completo disponível no GitHub. Sinta-se livre para usar, modificar e compartilhar!
#WebSocket #SocketIO #Angular #RealTime #NodeJS #Dashboard #WebDevelopment #JavaScript #TypeScript #IoT
13/03/2026
Apache com SSL: servidor web seguroConfigurar Apache no Ubuntu e ativar HTTPS com certificado SSL para hospedar sites e apps.

20/02/2026
Quando o sinal de celular não dá conta: LoRaLoRa como alternativa de longo alcance quando não há cobertura celular — ideia simples e casos de uso.

13/12/2025
Integrando o Google Maps no Angular 18Usar @angular/google-maps, chave de API e mapa no Angular 18 a partir de um projeto real.