ライブアップデート
APIと同じホストにWebSocketを開くと、レコードが変更されたときにFóirがアプリケーションに通知します。各イベントには変更されたもののIDが含まれ、SDKはそれをクエリキャッシュの更新に変換できます。
1つのソケットと同じキー
サブスクリプションは、APIと同じホストでgraphql-wsプロトコルを使い、クエリやミューテーションと同じAPIキーを使います。認証情報は接続が開いたときに送られ、内容はキーと、サインイン済みのユーザーがいる場合はそのユーザーのアクセストークンです。1つのソケットは、最大32のライブサブスクリプションを保持できます。
イベントが運ぶのはID
レコードイベントは、アクション(created、updated、published、unpublished、deleted)、レコードのID、そのモデルを示します。何が変わったかを特定するだけでコンテンツは含まないため、レコードは通常のAPIで読み取ります。各イベントにはシーケンス番号もあり、プロジェクトごとにコミット順で振られます。購読時に適用済みの最大の番号を渡すと、サーバーは見逃した分を永続ログから再送してから、ライブに戻ります。
SDKのサブスクリプションクライアント
型付きSDKは、各モデルにonChangeメソッドを提供し、購読解除用のハンドルを返します。最初のサブスクリプションでソケットを開き、最後の1つが終わると閉じます。接続が切れた場合は、指数バックオフで再接続し、ライブのサブスクリプションを再送します。
ライブモジュール
@foir/sdk/liveは、変更ストリームをクエリキャッシュにつなぎ、Reactバインディングもあります。編集では、そのレコードを保持していたクエリだけが再取得され、削除はメモリ上で反映され、作成は件数として報告されます。オプトインはモデルごとです。
詳細を読む
サブスクリプションのガイドで、エンドポイント、各サブスクリプションとそのイベントフィールド、ライブモジュールを説明しています。