Arquitetura em Tempo Real
ChurchApps usa uma única estrutura de entrega baseada em WebSocket para cada superfície em tempo real -- chat de grupo, mensagens privadas, notas de conteúdo, chat de transmissão ao vivo e presença/atendimento. Esta página documenta o protocolo, o servidor e as primitivas do cliente que os consumidores usam.
Visão Geral
O protocolo tem três peças:
- Um WebSocket persistente por aba do navegador, aberto por
SocketHelper. - Linhas de conexão (
POST /messaging/connections) registradas na tabelaconnections-- estas marcam uma tupla(socketId, churchId, conversationId)como assinante de uma sala. - Fan-out do lado do servidor por
DeliveryHelper.sendConversationMessages()-- quando uma mensagem é salva (POST /messaging/messages/send), o servidor lê as linhas de conexão correspondentes e envia um payload tipado para cada socket aberto.
Não há Socket.IO, sem fallback de long-polling e sem microsserviço separado. O WebSocket roda no mesmo processo que a API REST (web Lambda para HTTP, socket Lambda para WebSocket no AWS; um processo combinado localmente e no Railway).
Para detalhes completos sobre portas, protocolo de transmissão, componentes do lado do servidor, primitivas do lado do cliente, chat de transmissão ao vivo e padrões/armadilhas, consulte a documentação completa em inglês.
Páginas Relacionadas
- Messaging Endpoints -- Superfície REST completa para mensagens, conversas, conexões, dispositivos
- Web Push Notifications -- Push do navegador, separado da entrega de socket na página
- AppHelper -- O pacote npm que envia as primitivas do cliente
- Module Structure -- Como o módulo de mensagens é organizado no lado do servidor