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.

¿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 comoorder:% 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 predefinidarealtime.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:
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 eventospresence: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íticasSELECT 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:
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.