ComunicaçãoAo vivo

Real-time & Comunicação

Um chat em grupo por salas temporárias: você cria conta, entra ou cria uma sala através de um link, e conversa com até 10 pessoas em tempo real. Cada sala expira sozinha 7 dias depois de criada, sem deixar rastro. As mensagens ficam criptografadas (AES-256-GCM) no banco de dados.

Realtime Chat WebSocket Server-Sent Events Java Spring Boot Redis JWT

Tecnologias

  • Java 21
  • Spring Boot
  • Spring WebSocket
  • Spring Security
  • JJWT
  • PostgreSQL (Supabase)
  • Redis
  • BCrypt
  • Server-Sent Events
  • Criptografia AES-256-GCM

Arquitetura

  • Frontend Next.js consumindo uma API Java externa
  • WebSocket puro para o chat da sala (uma conexão por sala)
  • Server-Sent Events por usuário para avisar de mensagens novas em qualquer sala dele
  • Redis Pub/Sub entre instâncias
  • mensagens cifradas com AES-256-GCM antes de serem gravadas no banco
  • JWT de acesso curto com refresh token rotacionado
  • cookie de sessão cross-origin
  • expiração de sala controlada por data no banco — não por token

Conceitos

  • Ciclo de vida de WebSocket
  • EventSource e reconexão automática
  • notificações do navegador (Notification API)
  • Redis Pub/Sub entre instâncias
  • presença online via TTL
  • JWT com refresh token rotacionado
  • cookie de sessão cross-origin
  • expiração de dados via job agendado
  • modelagem relacional de salas e participantes
  • criptografia de mensagens em repouso (AES-GCM)

Área de demonstração

A demonstração é 100% funcional — teste agora.