Vai al contenuto principale

Avvio Rapido Websocket in Tempo Reale

Questo avvio rapido riunisce il minimo necessario per iniziare a ricevere eventi Legalesign GraphQL in tempo reale.

informazioni

Se preferisci callback server-to-server invece di connessioni persistenti, sono disponibili anche i webhook (descritti nella sezione REST API).

Usare un assistente di programmazione AI?

Per risultati ottimali, fornisci al tuo strumento AI queste pagine insieme:

Farai:

  • ottenere un token di accesso
  • aprire una connessione websocket AppSync
  • iscriverti a un feed utente o di gruppo
  • analizzare l'involucro dell'evento
  • instradare in base a category ed event

Prima di Iniziare

Hai bisogno di:

  • accesso API abilitato per il tuo account
  • un account utente Legalesign
  • un token di accesso
  • un groupId se desideri usare subscribeGroupFeed

Inizia qui se non hai ancora completato questi passaggi:

Passo 1: Scegli un Feed

Usa:

  • subscribeUserFeed per eventi destinati all'utente come il progresso di caricamento
  • subscribeGroupFeed per eventi destinati al gruppo come aggiornamenti di documento, destinatario, modello, compito, credito e ciclo di vita

Feed utente

subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}

Feed gruppo

subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}

Passo 2: Connettersi all'Endpoint Websocket

Usa l'endpoint websocket AppSync:

wss://graphql.uk.legalesign.com/graphql

Passa il tuo token bearer nei parametri di connessione.

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}`,
},
});

Passo 3: Iscriviti

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'),
}
);

Passo 4: Analizza il Payload Interno

Il campo subscription restituisce:

  • un involucro di consegna (groupId o userId)
  • una stringa JSON in data

Analizza il campo interno data prima di fare altro:

const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};

Esempio:

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);
}

Passo 5: Instrada in base a category ed event

Non costruire nuove integrazioni attorno ai codici legacy in stile systemMessage.

Usa:

  • category per identificare la famiglia dell'evento
  • event per identificare il cambiamento specifico

Esempi:

  • category: "upload", event: "uploadCompleted"
  • category: "task", event: "taskCompleted"
  • category: "documentLifecycle", event: "documentCreated"
  • category: "recipientLifecycle", event: "recipientVisiting"

Schemi Tipici di Partenza

Se stai scegliendo da dove iniziare:

Cosa Leggere Dopo