Μετάβαση στο κύριο περιεχόμενο

Σύνδεση στις Συνδρομές AppSync

Αυτός ο οδηγός δείχνει πώς να συνδεθείτε στο websocket endpoint του Legalesign AppSync και να ξεκινήσετε την κατανάλωση συνδρομών GraphQL.

Χρησιμοποιήστε αυτή τη σελίδα για τη ρύθμιση σύνδεσης.

Χρησιμοποιήστε αυτές τις σελίδες για τη χειρισμό του φορτίου:

Πριν Ξεκινήσετε​

Χρειάζεστε:

  • ένα έγκυρο access token
  • το endpoint GraphQL του Legalesign
  • έναν πελάτη GraphQL που υποστηρίζει websocket

Αποκτήστε πρώτα ένα access token:

Endpoints​

HTTP GraphQL endpoint:

https://graphql.uk.legalesign.com/graphql

Websocket endpoint:

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

Authentication​

Περάστε το access token σας κατά το άνοιγμα της websocket σύνδεσης.

Τυπικές παράμετροι σύνδεσης:

{
"Authorization": "Bearer <access-token>"
}

Subscription Operations​

Ροή Χρήστη​

subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}

Ροή Ομάδας​

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

Παράδειγμα JavaScript​

Αυτό το παράδειγμα χρησιμοποιεί το graphql-ws:

import { createClient } from 'graphql-ws';

import WebSocket from 'ws';

const accessToken = '<access-token>';

const client = createClient({
url: 'wss://graphql.uk.legalesign.com/graphql',
webSocketImpl: WebSocket,
connectionParams: {
Authorization: `Bearer ${accessToken}`,
},
});

const unsubscribeUser = client.subscribe(
{
query: `
subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}
`,
},
{
next: ({ data }) => {
console.log('user feed message', data);
},
error: (err) => {
console.error('user feed error', err);
},
complete: () => {
console.log('user feed closed');
},
}
);

const unsubscribeGroup = client.subscribe(
{
query: `
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
`,
variables: {
groupId: '<your-group-id>',
},
},
{
next: ({ data }) => {
console.log('group feed message', data);
},
error: (err) => {
console.error('group feed error', err);
},
complete: () => {
console.log('group feed closed');
},
}
);

// Later:
// unsubscribeUser();
// unsubscribeGroup();

Ανάλυση του Εσωτερικού Φορτίου​

Το πεδίο συνδρομής επιστρέφει έναν wrapper συν ένα string JSON στο data.

Αναλύστε το εσωτερικό φορτίο πριν κάνετε δρομολόγηση με βάση το category ή event:

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

Παράδειγμα:

next: ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);

console.log(event.category, event.event, event.data);
}

Επανασύνδεση και Ανανεώσεις Token​

Οι πελάτες παραγωγής θα πρέπει να:

  • επανασυνδέονται αυτόματα αν η websocket σύνδεση διακοπεί
  • ανανεώνουν τα ληγμένα access tokens
  • ανοίγουν ξανά τις συνδρομές μετά από επανασύνδεση

Αν οι συνδρομές σταματήσουν να λαμβάνουν ενημερώσεις μετά από μακροχρόνια συνεδρία, το πρώτο που πρέπει να ελέγξετε είναι η λήξη του token.

Σχετικά​