0

我有一个由 Amazon 上托管的 Realm Object Server 提供支持的 iOS 应用程序,我很好奇同步实际发生的时间。同步查询是延迟的,所有开放领域的实时同步,还是其他什么?

例如,假设我有一个名为 /common 的领域,并且所有 SyncUser 都对该领域具有读/写权限。每个活动的 SyncUser 还具有一个通知块,用于侦听 /common 领域中与其 SyncUser 身份对应的 GlobalProfile 对象。如果一个用户对另一个用户的 GlobalProfile 对象进行更改,所有用户会立即下载此更改,还是只有在此对象上有通知块的用户会立即下载更改?

具体来说,我想为用户(我们将其命名为 Tom)创建一种搜索其他用户并将他们发送到 Tom 领域的读/写权限的方法。我当前的解决方案是一个公共领域,每个用户都在其中添加一个 GlobalProfile 对象。要搜索名为 Jerry 的用户,Tom 可以简单地查询公共领域。要授予 Jerry 对 Tom 领域的读/写权限,Tom 可以将 SyncPermissionOffer.token 写入 Jerry 的 GlobalProfile。因为 Jerry 有一个通知块来监听他的 GlobalProfile,所以他会立即收到这个令牌的通知,并且可以接受 Tom 领域的 SyncPermissionOffer。然而,我担心的是所有用户,不仅仅是 Jerry,都会在 /common 领域同步这个变化,这是不必要的。如果应用程序有 100,000 个用户,我不会

如果这个问题不清楚,请告诉我。非常感谢你的帮助!

4

1 回答 1

1

同步所有更改都是实时的。同步不等待或取决于通知块。通知块在本地执行,不用于以任何方式更改客户端-服务器通信。

如果您有一个 /common 领域,它将包含您的所有权限提供,并且所有用户都将下载所有其他用户的权限提供。随着时间的推移,它会变大。

您可以做的是拥有一个 /common 领域,其中仅包含用户 ID、他们的“名称”和他们的“收件箱”领域的路径。当用户 A 想要邀请用户 B 时,A 在 /common 中查找 B,获取 B 的收件箱的 Realm 路径,并向其发送权限提议。

使用这种方法,通用 Realm 不会增长到那么大,因为数据 par 用户可以保持在 100 字节以下。

于 2017-08-15T09:33:46.607 回答