Instalación
npx @insforge/cli secrets get ANON_KEY, or in the dashboard: click Install and open API Keys.
Modelo mental
El SDK de TypeScript abre una conexión Socket.IO a tu backend de InsForge. Te suscribes a canales con nombre, escuchas nombres de eventos y opcionalmente publicas eventos de vuelta a los canales a los que te has unido. Los eventos pueden provenir de dos lugares:- Disparadores de base de datos que llaman a
realtime.publish(channel, event, payload). - Clientes que llaman a
insforge.realtime.publish(channel, event, payload).
Inicio rápido
connect()
Establece una conexión WebSocket.- El SDK incluye el token de autenticación actual cuando existe uno. Si no hay un usuario que ha iniciado sesión, puede usar la clave anónima configurada.
- Múltiples llamadas a
connect()mientras una conexión ya está en progreso reutilizan la misma promesa de conexión. - El intento de conexión expira después de 10 segundos.
subscribe()
Suscríbete a un canal y recibe la instantánea de presencia actual.
Devuelve:
subscribe() se conecta automáticamente si es necesario. Aún se recomienda llamar a connect() explícitamente para que los manejadores de eventos de conexión ya estén adjuntos.
subscribe() es idempotente: llamarlo de nuevo para un canal al que ya te uniste vuelve a solicitar la suscripción y resuelve la instantánea de presencia actual del servidor. El servidor rastrea la presencia por miembro lógico, por lo que las suscripciones repetidas nunca producen miembros duplicados ni eventos presence:join espurios.
publish()
Publica un evento en un canal.
Las fallas de publicación se emiten a través del evento
error.
on()
Escucha eventos personalizados, eventos de conexión, eventos de presencia y errores de tiempo real.once()
Escucha un evento una vez, luego elimina el listener automáticamente.off()
Elimina un listener de eventos.unsubscribe()
Abandona un canal.unsubscribe() es de disparar y olvidar. Si este era el último socket de un miembro lógico, otros suscriptores reciben presence:leave.
disconnect()
Cierra el WebSocket y limpia las suscripciones locales.Forma del mensaje
Los mensajes entregados incluyen los campos de tu carga útil más los metadatos del servidor.senderType es system para mensajes disparados por la base de datos y user para mensajes publicados por el cliente.
Presencia
Una suscripción exitosa devuelve la instantánea de presencia actual.Lectura del estado de presencia
El SDK mantiene la lista de miembros de cada canal suscrito — inicializada desde la instantánea de suscripción y mantenida actualizada a partir de los deltaspresence:join/presence:leave y las resincronizaciones de reconexión. Léela en cualquier momento en lugar de fusionar los deltas tú mismo:
Reconexiones
Cuando la conexión se cae, el SDK vuelve a suscribirse automáticamente a cada canal en la reconexión y emitepresence:sync con la instantánea de presencia nueva para cada uno. Los miembros que se unieron o abandonaron mientras estabas desconectado no producen deltas individuales presence:join/presence:leave, por lo que reemplaza — no fusiones — cualquier estado que mantengas fuera del SDK:
getPresenceState(), presence:sync es simplemente tu señal de re-renderizado. Si una resuscripción es rechazada (por ejemplo, el acceso del usuario fue revocado mientras estaba desconectado), el SDK descarta el canal y emite error en su lugar.