Realm ~ App .Sync .セッション

Atlas Device Sync セッションをカプセル化するオブジェクト。 セッションは、クライアント(およびディスク上のローカル Realm ファイル)とサーバー間の通信を表します。 セッションは常に SDK によって作成され、さまざまな API を通じて販売されます。 Realm に関連付けられたセッションの有効期限は自動的に管理されます。

config

対応する Realm が構築された構成の同期部分を取得します。

タイプ:
object
状態

セッションの現在の状態を取得します。 次のいずれかになります。

  • "active": 同期セッションが Atlas App Services とアクティブに通信しているか、通信しようとしているとき セッションは現在接続されていない場合でも、アクティブと見なされる場合があります。 セッションがオンラインであるかどうかを確認するには、その接続状態を確認します。
  • 「非アクティブ」: ユーザーがログアウトまたは同期を一時停止しているため、同期セッションは Atlas App Services との通信を試行しません。
  • "invalid": 同期セッションで回復不能なエラーが発生したため、永続的に無効です。 同期を続行するには、 新しいセッションを作成します 。
タイプ:
string
URL

このセッションが接続している Realm オブジェクト サーバーの URL を取得します。

タイプ:
string
user

このセッションが作成されたユーザーを取得します。

タイプ:
User
addConnectionNotification(コールバック)

セッション オブジェクトに接続通知を登録します。 これにより、Realm オブジェクト サーバーへの基礎の接続に対する変更が通知されます。

パラメーター:
  • コールバック
    • タイプ: callback(newState, oldState)
    • 次の引数で呼び出されます。

      • newState - 接続の新しい状態
      • oldState - 接続が移行した状態。
addProgressNotification(ディレクティブ、モード、コールバック)

セッション オブジェクトに進行状況通知コールバックを登録する

パラメーター:
  • 方向
    • タイプ: string
    • 登録する進行状況の方向。 次のいずれかになります。

      • download - ダウンロードの進行状況を報告する
      • upload - アップロード進行状況の報告
  • モード
    • タイプ: string
    • 登録に使用する進行状況通知モード。 次のいずれかになります。

      • reportIndefinitely - コールバックが未登録になるまで、登録はアクティブのままになります
      • forCurrentlyOutstandingWork - 現在転送可能なバイトのみが同期されるまで、登録はアクティブになる
  • コールバック
    • タイプ: callback(transferred, transferable)
    • 次の引数で呼び出されます。

      • transferred - すでに転送されている現在のバイト数
      • transferable - 転送可能なバイトの合計数(すでに転送されたバイト数と転送が保留中のバイト数の合計)
connectionState()

サーバーへの接続の現在の状態を取得します。 複数のセッションが同じ基礎となる接続を共有する場合があります。 その場合、接続の変更はすべてのセッションに送信されます。

次のいずれかになります。

  • Realm.App.Sync.ConnectionState.Disconnected: サーバーへの接続は利用できません。
  • Realm.App.Sync.ConnectionState.Connecting: サーバーに接続する試行が進行中です。
  • Realm.App.Sync.ConnectionState.Connected: サーバーへの接続はアクティブであり、データを同期できます。

このメソッドがConnectedを返し、かつstate()ActiveまたはDyingを返す場合にのみ、データは Realm ObjectServer と同期されます。

ダウンロードAllServerChecks(タイムアウト)

このメソッドは、既知のリモート変更がすべてダウンロードされて Realm に適用されるまで、または指定されたタイムアウトに達するまで正常に解決されない Promise を返します。これらの場合は拒否されます。 メソッドがタイムアウトした場合でも、ダウンロードはバックグラウンドで続行されます。

このメソッドは、Realm が開かれる前に呼び出すことができません。

パラメーター:
  • タイムアウト
    • Promise が拒否されるまでに待機する最大時間(ミリ秒単位)。 タイムアウトが指定されていない場合、メソッドは永久に待機します。

isConnected()

セッションが現在アクティブでサーバーに接続されている場合はtrueを返し、そうでない場合はfalseを返します。

pause()

同期セッションを一時停止します。

このメソッドは非同期であるため、セッションが開始されたタイミングを確認するには、 addConnectionNotificationによる接続通知を追加する必要があります。

このメソッドは偶数であるため、セッションがすでに一時停止されている場合は操作は実行されません。

deleteConnectionNotification(コールバック)

以前にaddStateNotification で登録された状態通知コールバックの登録を解除します。同じコールバックで関数を複数回呼び出すと無視されます。

パラメーター:
  • コールバック
    • タイプ: callback(oldState, newState)
    • 以前に登録された状態のコールバック。

deleteProgressNotification(コールバック)

以前に addProgressNotification に登録された進行状況通知コールバックの登録を解除します。同じコールバックで関数を複数回呼び出すと無視されます。

パラメーター:
  • コールバック
    • タイプ: callback(transferred, transferable)
    • 以前に登録された進行状況のコールバック

再開()

一時停止された同期セッションを再開します。

このメソッドは非同期であるため、セッションが開始されたタイミングを確認するには、 addConnectionNotificationによる接続通知を追加する必要があります。

このメソッドは偶数であるため、セッションがすでに開始されている場合は操作は実行されません。

アップロードAllLocalchanges(タイムアウト)

このメソッドは、既知のローカル変更がサーバーにアップロードされるか、指定されたタイムアウトに達するまで正常に解決されない Promise を返します。いずれの場合も拒否されます。 メソッドがタイムアウトした場合でも、アップロードはバックグラウンドで続行されます。

このメソッドは、Realm が開かれる前に呼び出すことができません。

パラメーター:
  • タイムアウト
    • Promise が拒否されるまでに待機する最大時間(ミリ秒単位)。 タイムアウトが指定されていない場合、メソッドは永久に待機します。