Σύνδεση στις Συνδρομές 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.