Live-Updates

Öffnen Sie einen WebSocket zum selben Host wie die API, und Fóir meldet Ihrer Anwendung, wenn sich ein Datensatz ändert. Jedes Ereignis trägt die ID dessen, was sich geändert hat, und das SDK kann daraus eine Aktualisierung Ihres Abfrage-Caches machen.

Ein Socket, derselbe Schlüssel

Subscriptions verwenden das graphql-ws-Protokoll auf dem eigenen Host der API, mit demselben API-Schlüssel wie Ihre Abfragen und Mutationen. Zugangsdaten werden beim Öffnen der Verbindung gesendet: der Schlüssel und, falls vorhanden, das Zugriffstoken eines angemeldeten Nutzers. Ein Socket hält bis zu 32 Live-Subscriptions.

Was Sie abonnieren können

recordChanged meldet Änderungen an den Datensätzen eines Modells. Weitere Subscriptions decken die dem Aufrufer eigenen Benachrichtigungen, den Fortschritt von Hintergrundjobs und den Lauf einer einzelnen Operation. Ein Modell zu beobachten erfordert dieselbe Leseberechtigung wie das Lesen, und bei einem Modell, dessen Datensätze für jeden Nutzer privat sind, wird der Stream auf die eigenen Datensätze des Aufrufers gefiltert.

Ereignisse tragen IDs

Ein Datensatzereignis nennt die Aktion (erstellt, aktualisiert, veröffentlicht, depubliziert oder gelöscht), die ID des Datensatzes und sein Modell. Es identifiziert, was sich geändert hat, und lässt den Inhalt weg, sodass Sie den Datensatz über die normale API lesen. Jedes Ereignis hat außerdem eine Sequenznummer, pro Projekt und in Commit-Reihenfolge. Übergeben Sie beim Abonnieren die höchste, die Sie angewendet haben, und der Server spielt aus seinem dauerhaften Log wieder ein, was Sie verpasst haben, bevor er live fortfährt.

Der Subscription-Client des SDK

Das typisierte SDK gibt jedem Modell eine Methode onChange mit einem Handle zum Beenden des Abonnements als Rückgabewert. Es öffnet den Socket beim ersten Abonnement und schließt ihn, wenn das letzte endet. Bricht die Verbindung ab, verbindet es sich mit exponentiellem Backoff neu und sendet die Live-Subscriptions erneut.

Das Live-Modul

@foir/sdk/live verbindet den Änderungsstream mit Ihrem Abfrage-Cache und hat eine React-Anbindung. Eine Bearbeitung lädt nur die Abfragen neu, die diesen Datensatz enthielten, eine Löschung wird im Speicher angewendet, und eine Erstellung wird als Anzahl gemeldet. Sie schalten es pro Modell ein.

Details nachlesen

Der Subscriptions-Leitfaden behandelt den Endpunkt, jede Subscription mit ihren Ereignisfeldern und das Live-Modul.