Realm ~App 同步会话

封装 Atlas Device Sync 同步会话的对象。会话代表客户端(以及磁盘上的本地 Realm 文件)和服务器之间的通信。 会话始终由 SDK 创建并通过各种 API 发出。 与 Realm 关联的会话的生命周期是自动管理的。

config

获取构造相应 Realm 所使用的配置的同步部分。

类型
object

获取会话的当前状态。 可以是:

  • "active":同步会话正在与 Atlas App Services 主动通信或尝试与 Atlas App Services 通信。 即使当前未连接,也可将会话视为活动会话。 要确定会话是否在线,请检查其连接状态。
  • "inactive":由于用户注销或同步暂停,同步会话未尝试与 Atlas App Services 通信。
  • "invalid":同步会话遇到不可恢复的错误,永久无效。创建新会话以继续同步。
类型
string
url

获取此会话连接到的 Realm 对象服务器的 URL。

类型
string
user

获取创建此会话所使用的 User。

类型
User
addConnectionNotification(回调)

在会话对象上注册连接通知。 这将收到有关 Realm 对象服务器的底层连接发生变化的通知。

参数
  • callback
    • 类型: callback(newState, oldState)
    • 使用以下参数调用:

      • newState - 新的连接状态
      • oldState - 连接转换的状态。
addProgressNotification(方向、模式、回调)

在会话对象上注册进度通知回调

参数
  • 方向
    • 类型: string
    • 要注册的进度方向。 可以是:

      • download - 报告下载进度
      • upload - 报告上传进度
  • 模式
    • 类型: string
    • 用于注册的进度通知模式。 可以是:

      • reportIndefinitely - 注册将保持活动状态,直到取消注册回调
      • forCurrentlyOutstandingWork - 注册将一直有效,直到仅同步当前可传输的字节
  • callback
    • 类型: callback(transferred, transferable)
    • 使用以下参数调用:

      • transferred - 当前已传输的字节数
      • transferable - 可传输的字节总数(已传输的字节数加上待传输的字节数)
connectionState()

获取与服务器连接的当前状态。 多个会话可能会共享相同的底层连接。 在这种情况下,任何连接更改都会发送到所有会话。

可以为以下任一项:

  • Realm.App.Sync.ConnectionState.Disconnected:与服务器的连接不可用。
  • Realm.App.Sync.ConnectionState.Connecting:正在尝试连接到服务器。
  • Realm.App.Sync.ConnectionState.Connected:与服务器的连接处于活动状态,可以同步数据。

仅当此方法返回Connectedstate()返回ActiveDying时,数据才会与 Realm ObjectServer 同步。

downloadAllServerChanges(超时)

此方法会返回一个 Promise,该 Promise 无法成功解析,直到所有已知的远程更改都已下载并应用于 Realm,或者达到指定的超时时间(后一种情况将被拒绝)。 如果该方法超时,下载仍将在背景继续。

在打开 Realm 之前无法调用此方法。

参数
  • 超时
    • 在拒绝 Promise 之前等待的最长时间(以毫秒为单位)。 如果未指定超时时间,该方法将永远等待。

isConnected()

true如果会话当前处于活动状态并连接到服务器,则返回 ,否则返回false

暂停()

暂停同步会话。

此方法是异步方法,因此为了知道会话何时开始,您需要使用addConnectionNotification添加连接通知。

此方法是幂等的,因此如果会话已暂停,则该方法不会执行任何操作。

removeConnectionNotification(回调)

取消注册之前使用 addStateNotification 注册的状态通知回调。使用同一回调多次调用该函数将被忽略。

参数
  • callback
    • 类型: callback(oldState, newState)
    • 先前注册的状态回调。

removeProgressNotification(回调)

取消注册之前使用 addProgressNotification 注册的进度通知回调。使用同一回调多次调用该函数将被忽略。

参数
  • callback
    • 类型: callback(transferred, transferable)
    • 先前注册的进度回调

resume()

恢复已暂停的同步会话。

此方法是异步方法,因此为了知道会话何时开始,您需要使用addConnectionNotification添加连接通知。

此方法是幂等的,因此如果会话已启动,则此方法不会执行任何操作。

uploadAllLocalChanges(超时)

此方法返回一个无法成功解析的 Promise,直到所有已知的本地更改都已上传到服务器或达到指定的超时时间(在这种情况下,该方法将被拒绝)。 如果该方法超时,上传仍将在背景继续。

在打开 Realm 之前无法调用此方法。

参数
  • 超时
    • 在拒绝 Promise 之前等待的最长时间(以毫秒为单位)。 如果未指定超时时间,该方法将永远等待。