Inicio rápido de Websocket en tiempo real
Este inicio rápido reúne lo mínimo que necesitas para comenzar a recibir eventos en tiempo real de Legalesign GraphQL.
info
Si prefieres devoluciones de llamada servidor a servidor en lugar de conexiones persistentes, también están disponibles los webhooks (descritos en la sección REST API).
¿Usando un asistente de codificación con IA?
Para mejores resultados, proporciona a tu herramienta de IA estas páginas juntas:
Harás:
- obtener un token de acceso
- abrir una conexión websocket AppSync
- suscribirte a un feed de usuario o grupo
- analizar el sobre del evento
- enrutar según
categoryyevent
Antes de comenzar
Necesitas:
- acceso a la API habilitado para tu cuenta
- una cuenta de usuario de Legalesign
- un token de acceso
- un
groupIdsi deseas usarsubscribeGroupFeed
Comienza aquí si aún no has realizado esos pasos:
Paso 1: Elige un feed
Usa:
subscribeUserFeedpara eventos dirigidos al usuario, como progreso de cargasubscribeGroupFeedpara eventos dirigidos al grupo, como actualizaciones de documentos, destinatarios, plantillas, tareas, créditos y ciclo de vida
Feed de usuario
subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}
Feed de usuario
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
Feed de grupo
wss://graphql.uk.legalesign.com/graphql
Paso 2: Conéctate al endpoint Websocket
Usa el endpoint websocket de AppSync:
import { createClient } from 'graphql-ws';
import WebSocket from 'ws';
const client = createClient({
url: 'wss://graphql.uk.legalesign.com/graphql',
webSocketImpl: WebSocket,
connectionParams: {
Authorization: `Bearer ${accessToken}`,
},
});
Pasa tu token bearer en los parámetros de conexión.
client.subscribe(
{
query: `
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
`,
variables: {
groupId: '<your-group-id>',
},
},
{
next: ({ data }) => {
console.log('raw message', data);
},
error: console.error,
complete: () => console.log('subscription closed'),
}
);
Paso 3: Suscríbete
const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};
Paso 4: Analiza la carga interior
El campo de suscripción devuelve:
- un envoltorio de entrega (
groupIdouserId) - una cadena JSON en
data
Analiza primero el campo data interno antes de hacer cualquier otra cosa:
next: ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);
console.log('event id', event?.eventId);
console.log('category', event?.category);
console.log('event', event?.event);
console.log('payload', event?.data);
}
Ejemplo: