Saltar al contenido principal
Usa InsForge Realtime cuando tu aplicación necesite actualizarse sin recargar la página. Los clientes se suscriben a canales como order:123 o chat:room-1, y luego reciben cambios de base de datos, difusiones y actualizaciones de presencia a través de WebSockets. Los canales también pueden distribuir los mismos mensajes a URLs de webhook cuando otro servicio deba recibir el evento.
Panel de InsForge Realtime
¿Necesitas ejecutar código del lado del servidor después de un cambio en la base de datos? Coloca esa lógica de negocio en una Edge Function e invócala desde un disparador (trigger) de base de datos. Usa Realtime cuando el cambio deba entregarse a los clientes conectados o a los endpoints de webhook configurados.

Funciones

Canales

Los canales son temas con nombre a los que los clientes pueden unirse. Usa nombres exactos para salas compartidas, o patrones como order:% cuando cada registro necesite su propio flujo en vivo.

Cambios de base de datos

Usa los cambios de base de datos cuando una escritura en una tabla deba convertirse en un evento en vivo de la aplicación. Crea un disparador (trigger) en la tabla que quieras observar. En su función de disparador, llama a la función predefinida realtime.publish(channel, event, payload) para decidir qué canal recibe el mensaje, qué nombre de evento manejan los clientes y qué payload reciben. Para un patrón de canal como order:%, un disparador puede publicar un evento por cada pedido:
Luego suscríbete desde la aplicación con el SDK:

Difusiones del cliente

Los clientes pueden publicar mensajes en canales a los que ya se han unido. Úsalo para chat, indicadores de escritura, cursores, señales de edición colaborativa y otras actualizaciones de usuario a usuario que no necesiten originarse en una escritura de base de datos.

Webhooks

Adjunta URLs de webhook a un canal cuando otro servicio deba recibir cada mensaje. InsForge publica el payload del evento en cada URL configurada, incluye encabezados con el nombre del evento, el canal y el ID del mensaje, reintenta los fallos transitorios de red y registra los conteos de entrega de webhooks en el historial de mensajes.

Presencia

La presencia rastrea quién está en línea en un canal. Los clientes reciben una instantánea de los miembros actuales al suscribirse, y luego los eventos presence:join y presence:leave a medida que los miembros entran y salen. Guarda la membresía duradera de la sala, los roles y los permisos en tus propias tablas; la presencia solo ofrece el estado en línea.

Seguridad a nivel de fila

Realtime puede estar abierto durante el prototipado y luego bloquearse con RLS de Postgres. Usa políticas SELECT en realtime.channels para controlar quién puede suscribirse, y políticas INSERT en realtime.messages para controlar quién puede publicar desde un cliente. Esta política permite que los usuarios autenticados se suscriban a canales order:<id> solo cuando el pedido les pertenece:
Usa realtime.channel_name() en las políticas de suscripción porque los clientes se suscriben a canales resueltos como order:123, mientras que realtime.channels almacena patrones como order:%.

Historial de mensajes

Cada evento entregado se registra con los conteos de entrega de WebSocket y webhook. El panel puede inspeccionar los mensajes recientes, las estadísticas de entrega y la configuración de retención cuando necesites depurar el comportamiento en vivo.

Empieza a construir

TypeScript SDK

Suscríbete a canales, publica eventos y rastrea la presencia desde Node, el navegador y el edge.

Swift SDK

Cliente nativo de Swift en tiempo real para iOS y macOS.

Kotlin SDK

Cliente en tiempo real basado en corrutinas para Android y JVM.

REST and WebSocket API

Usa el contrato Socket.IO en bruto desde cualquier lenguaje.

Próximos pasos

  • Configura la CLI para vincular tu proyecto.
  • Crea canales en el panel de Realtime.
  • Usa la referencia del SDK de TypeScript para las suscripciones del cliente.
  • Agrega URLs de webhook a un canal cuando otro servicio necesite el mismo flujo de eventos.