如果我的Realm Object Server处于离线状态,我希望能够在我的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的在线/离线状态?
答案 0 :(得分:1)
不幸的是,目前无法使用Realm的API确定您的Realm Object Server是在线还是离线。
您认为状态报告为Active
的原因是因为从Realm的角度来看,会话仍然有效且已连接。底层同步引擎负责处理网络连接中的故障,并且当前不会将此信息暴露给绑定层(此状态变量所在的位置)。
我们知道这是一个经常被请求的功能,并计划在将来构建类似的功能。
答案 1 :(得分:1)
现在我们在Realm 3.9.0中具有此功能:
https://github.com/realm/realm-cocoa/blob/master/CHANGELOG.md#390-release-notes-2018-09-10