Saltar al contenido principal

Descripción general

El tiempo real tiene dos superficies:
  • API REST para gestión de canales, historial de mensajes, estadísticas de entrega, permisos y configuración de retención.
  • Socket.IO para suscripción en vivo, publicación, presencia y eventos entregados.
La API REST no transmite mensajes. Usa la conexión Socket.IO o el SDK de TypeScript para eventos en vivo.

Autenticación

Los puntos finales REST de administrador requieren un token de administrador de proyecto o clave API.
También puedes pasar claves API con:
Las conexiones Socket.IO se autentican a través del objeto Socket.IO auth:
Los clientes de servidor/administrador pueden pasar una clave API:

Pub/Sub de Socket.IO

Instala el cliente Socket.IO cuando no estés usando el SDK de InsForge:

Conectar y suscribirse

Escuchar eventos

Publicar

El socket debe suscribirse correctamente a un canal antes de poder publicar en ese canal.

Cancelar suscripción

Eventos de socket

EventoDirecciónDescripción
realtime:subscribeCliente a servidorSuscribirse a un canal. El reconocimiento devuelve éxito/error e instantánea de presencia.
realtime:unsubscribeCliente a servidorAbandonar un canal.
realtime:publishCliente a servidorInsertar un mensaje de usuario en la tubería en tiempo real.
Custom event nameServidor a clienteMensaje entregado, emitido bajo el eventName del mensaje.
presence:joinServidor a clienteUn miembro lógico se hace presente en el canal.
presence:leaveServidor a clienteUn miembro lógico ya no está presente en el canal.
realtime:errorServidor a clienteLa suscripción o publicación falló.

Patrones de canal

Crea definiciones de canal antes de que los clientes se suscriban.
PatrónCoincide
ordersorders
order:%order:123, order:456
chat:%:messageschat:room-1:messages
La coincidencia de patrones usa SQL LIKE, por lo que % es el comodín. _ no se acepta en patrones de canal porque también es un comodín SQL.

Canales

Listar canales

Respuesta:

Crear canal

Cuerpo de la solicitud:
CampoTipoRequeridoDescripción
patternstringPatrón de canal.
descriptionstringNoDescripción legible por humanos.
webhookUrlsstring[]NoURLs de webhook para cada mensaje entregado.
enabledbooleanNoPor defecto es true. Los canales deshabilitados no pueden unirse ni entregarse.

Obtener canal

Actualizar canal

Eliminar canal

El historial de mensajes se conserva. Los canales eliminados establecen valores channelId de mensajes existentes en null.

Mensajes

Listar mensajes

Parámetros de consulta:
ParámetroTipoDescripción
channelIduuidFiltrar por ID de canal.
eventNamestringFiltrar por nombre de evento.
limitinteger1 a 1000. Por defecto es 100.
offsetintegerPor defecto es 0.
Respuesta:

Estadísticas de mensajes

Parámetros de consulta:
ParámetroTipoDescripción
channelIduuidFiltrar estadísticas por ID de canal.
sincedate-timeIncluir solo mensajes creados después de esta marca de tiempo.
retentionDays: null significa que los mensajes se retienen indefinidamente.

Permisos

Devuelve políticas RLS definidas por el usuario para:
  • Comprobaciones de suscripción en realtime.channels.
  • Comprobaciones de publicación en realtime.messages.

Configuración

Obtener configuración en tiempo real

Actualizar configuración en tiempo real

Usa null para retener mensajes indefinidamente. Los enteros positivos retienen mensajes durante esa cantidad de días.

Webhooks

Cuando un canal tiene webhookUrls, cada mensaje entregado a través de ese canal se envía a cada URL. El cuerpo de la solicitud es la carga útil de mensaje original. Los encabezados identifican la entrega:
EncabezadoValor
X-InsForge-EventNombre del evento
X-InsForge-ChannelNombre del canal resuelto
X-InsForge-Message-IdUUID del mensaje
Los intentos de entrega se reflejan en whAudienceCount y whDeliveredCount en el historial de mensajes.