Mises à jour en direct

Ouvrez un WebSocket vers le même hôte que l'API et Fóir prévient votre application quand un enregistrement change. Chaque événement porte l'id de ce qui a changé, et le SDK peut le convertir en mise à jour de votre cache de requêtes.

Un socket, la même clé

Les subscriptions utilisent le protocole graphql-ws sur l'hôte propre de l'API, avec la même clé API que vos requêtes et mutations. Les identifiants sont envoyés à l'ouverture de la connexion : la clé, et le jeton d'accès d'un utilisateur connecté quand il y en a un. Un socket tient jusqu'à 32 subscriptions actives.

Ce à quoi vous pouvez vous abonner

recordChanged signale les changements des enregistrements d'un modèle. D'autres subscriptions couvrent les notifications, propres à l'appelant, la progression des tâches en arrière-plan et l'exécution d'une seule opération. Surveiller un modèle demande la même permission de lecture que le lire, et sur un modèle dont les enregistrements sont privés pour chaque utilisateur, le flux est filtré sur les enregistrements de l'appelant.

Les événements portent des ids

Un événement d'enregistrement nomme l'action (créé, mis à jour, publié, dépublié ou supprimé), l'id de l'enregistrement et son modèle. Il identifie ce qui a changé et laisse le contenu de côté, vous lisez donc l'enregistrement par l'API normale. Chaque événement a aussi un numéro de séquence, par projet et dans l'ordre de validation. Passez le plus élevé que vous avez appliqué quand vous vous abonnez et le serveur rejoue ce que vous avez manqué depuis son journal durable avant de continuer en direct.

Le client de subscription du SDK

Le SDK typé donne à chaque modèle une méthode onChange qui renvoie un handle pour se désabonner. Il ouvre le socket à la première subscription et le ferme quand la dernière se termine. Si la connexion tombe, il se reconnecte avec un backoff exponentiel et renvoie les subscriptions actives.

Le module live

@foir/sdk/live relie le flux de changements à votre cache de requêtes, et a une liaison React. Une modification ne relance que les requêtes qui contenaient cet enregistrement, une suppression est appliquée en mémoire, et une création est signalée sous forme de décompte. Vous l'activez par modèle.

Lire le détail

Le guide des subscriptions couvre l'endpoint, chaque subscription et ses champs d'événement, ainsi que le module live.