在 Swift 检查领域对象服务器状态

Check Realm Object Server Status in Swift

如果我的 Realm 对象服务器离线,我希望能够在我的 Mac/iOS 应用程序中显示一个指示器。

据我所知,唯一可用的 API 是 Sync Session state.

我在阅读了关于 the available states:

之后设置了这样的东西
let session = SyncUser.current!.session(for: realmURL)!

if session.state.hashValue != 0{
  print("Offline or invalid")
}else{
  print("Online")
}

然后我关闭了我的同步服务器,运行再次出现这个代码,它仍然说它在线。 state 似乎不准确。

这应该是这样工作的吗?我可以可靠地确定我的 ROS 的 online/offline 状态吗?

遗憾的是,目前无法使用 Realm 的 API 确定您的 Realm 对象服务器是在线还是离线。

您看到状态报告为 Active 的原因是因为从 Realm 的角度来看,会话仍然有效且已连接。底层同步引擎负责处理网络连接中的故障,目前不会将此信息暴露给绑定层(此状态变量所在的位置)。

我们知道这是一个经常被要求的功能,并计划在未来构建类似的功能。

现在我们在 Realm 3.9.0 中有了这个功能:

https://github.com/realm/realm-cocoa/blob/master/CHANGELOG.md#390-release-notes-2018-09-10