Utilisation des abonnements
Les abonnements sont utiles pour une expérience utilisateur en temps réel, tels que :
- la progression des téléchargements
- la progression des tâches asynchrones
- les mises à jour du cycle de vie des documents et des destinataires
- les modifications de crédit
Pour le schéma de la charge utile lui-même, voir :
- Se connecter aux abonnements AppSync
- Format des événements d'abonnement
- Schéma des événements d'abonnement
Analyser la charge utile interne de l’événement
Le champ d’abonnement retourne :
- un enveloppe de livraison (
userIdougroupId) - une chaîne JSON dans
data
Toujours analyser la valeur interne data avant de traiter l’événement.
const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};
Routage par category et event
Considérez :
categorycomme la famille de l’événementeventcomme l’action spécifique ou l’état du flux de travail
Exemples :
category : "upload",event : "uploadCompleted"category : "task",event : "taskCreditBlocked"category : "documentLifecycle",event : "documentCreated"category : "recipientLifecycle",event : "recipientVisiting"
Règles de livraison
subscribeUserFeedest utilisé pour les événements ciblant l’utilisateur tels que la progression de téléchargement et certaines diffusions du cycle de vie.subscribeGroupFeedest utilisé pour les événements ciblant un groupe tels que les mises à jour de documents, de destinataires, de modèles, de tâches, de crédits et du cycle de vie.- Certains événements sont diffusés aux deux flux avec le même
eventId.
Recommandations de compatibilité
Si vous migrez depuis les anciennes charges utiles d’abonnement plates :
- analysez d’abord l’enveloppe interne
data - déplacez le routage des événements vers
eventau lieu de l’anciensystemMessage - utilisez
categorypour décider comment interpréterdata - continuez à ignorer les champs inconnus dans
data
Noms d’événements représentatifs
Les noms d’événements courants incluent :
documentArchiveddocumentCancelledrecipientUpdatedrecipientResetdocumentCreateddocumentFinalPdfCreateddocumentRejectedrecipientSentEmailrecipientVisitingrecipientCompletedrecipientRejectedrecipientEmailOpenedtaskDocumentCreatedtaskCompletedtaskStoppedByRecipientStopListtaskTrialCreditBlockedtaskCreditBlockedtemplateArchivedtemplateUpdatedtemplateElementCreatedtemplateElementUpdatedtemplateElementDeletedtemplateRoleCreatedtemplateRoleUpdatedtemplateRoleDeleteduploadScanneduploadTypeCheckeduploadConvertinguploadFlatteneduploadTagsParseduploadPdfMetaExtracteduploadCompleteduploadFailedcreditUpdated
Guides dédiés aux workflows :