Lumipat sa pangunahing nilalaman

Real-time Architecture

Ang ChurchApps ay gumagamit ng isang WebSocket-based delivery framework para sa bawat real-time surface — group chat, private messages, content notes, live stream chat, at presence/attendance.

Overview

Ang protocol ay may tatlong bahagi:

  1. Isang persistent WebSocket bawat browser tab
  2. Connection rows na naka-record sa connections table
  3. Server-side fan-out ng DeliveryHelper

Wire Protocol

Ang bawat frame ay JSON:

interface PayloadInterface {
churchId: string;
conversationId: string;
action: PayloadAction;
data: unknown;
}

Server-side Components

FileTungkulin
SocketHelper.tsMay-ari ng WebSocketServer
DeliveryHelper.tsNagpapadala ng mga mensahe
ConnectionController.tsNamamahala ng connection

Client-side Primitives

Ang lahat ng primitive ay static singleton sa @churchapps/apphelper:

  • SocketHelper -- May-ari ng WebSocket connection
  • SubscriptionManager -- Ref-counted room membership
  • ConversationStore -- In-memory cache ng mga mensahe
  • PresenceStore -- Nag-mirror ng attendance data
  • NotificationService -- Top-level boot para sa authenticated caller

Live Stream Chat

Ang live stream ay gumagamit ng dalawang contentType para sa room scoping:

  • streamingLive -- Pampublikong chat
  • streamingLiveHost -- Pribadong staff room

Mga Kaugnay na Pahina