【问题标题】:Sharing particular data between realms在领域之间共享特定数据
【发布时间】:2017-06-13 09:09:01
【问题描述】:

我即将开始开发移动应用程序的后端(最初是 iOS/Android,后来也是网站),我正在考虑 Realm 是否可以满足我的所有需求。

基本思想是有两种类型的用户 - 客户和服务提供商。客户不时向服务器发送请求,并为将来可能发生的与此请求相关的任何事件订阅(实时)。每个服务提供商都在监听来自所有客户的特定请求,并且将为每个请求触发各种事件(发送数据)。

从 Realm 文档中,很明显实时数据同步不会成为问题。我关心的是如何在领域“世界”中对场景(客户/服务提供者)进行建模。根据我阅读的内容,每个用户最好有一个领域。因此,我想用户将注册并获得一个领域。那么每当他提出请求时,都会将其存储在他的领域中。现在的问题是如何为服务提供者建模。将有各种服务提供商,每个服务提供商都响应(在请求后最多一小时内触发各种事件)对不同类型的请求。 (每个用户都可以发送任何请求,因此可以由任何服务提供商提供服务。)

我读到一些关于 Realm 支持不同领域之间的数据共享的信息,这可能是这个问题的部分解决方案,但是我无法找到这种“共享”是否只能共享特定请求。 (这意味着每个服务提供者只会收到针对他的请求。)

我的问题是这个场景使用 Realm 是否可行?

【问题讨论】:

    标签: realm realm-mobile-platform


    【解决方案1】:

    这听起来非常适合 Realm 的服务器端 event-handling。简而言之,Realm 通过我们的 Node SDK 提供了在服务器上监听跨领域变化的能力。

    因此,在您的示例中,每个移动用户都有自己的 Realm,其 URL 将是 /~/myRealm,其中波浪号表示 Realm 用户 ID。 Node SDK 事件处理 API 允许您注册一个 JS 函数,该函数将运行以响应由 Realm URL 的正则表达式模式表示的更改。在这种情况下,您可以使用:^/([0-9a-f]+)/myRealm,以便任何时候任何用户的myRealm 更新,服务器都可以执行一些逻辑。

    通过这种方式,通过 Node SDK 的服务器实际上是您描述的“超级用户”或服务提供者。当事件触发时,运行的 JS 函数会提供更新的领域以及与领域中插入、删除或修改的对象相关的索引列表。然后,您可以在 JS 中执行任何逻辑,例如使用更改的数据调用另一个 API 或打开有问题的领域或任何其他并编写将被推送回相应客户端的更改。

    完整的服务器端事件处理是 Realm 专业版的一部分,但我们最近发布了另一种与之交互的方式,称为 Realm Functions。这提供了通过服务器的仪表板创建相同的 JS 函数的能力,这些函数将响应跨领域的变化而运行。开发者版支持3种功能,立马试用!

    【讨论】:

    • 如果我理解正确,我将连接所有领域的任何更改,找出应该接收此事件的服务提供商,然后将其插入到它的领域,因此领域“引擎”将通知所有连接的客户端到这个领域(在领域时间)。我唯一担心的是数据重复,因为记录将同时存储在两个领域,但我想我们无法解决这个问题......(没有什么比只创建指向行的指针作为在领域之间共享数据的手段,数据实际上是重复的,对吧?)
    • 目前数据需要跨 Realm 复制,但未来我们确实计划支持将数据子集从单个 Realm 同步到客户端,以便您只需添加链接或调整一个属性,使其适合发送给特定客户端组的子集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2011-06-16
    • 2017-11-28
    • 2018-12-02
    相关资源
    最近更新 更多