【问题标题】:MeteorJS Synchronization only on demand, not continouslyMeteor JS 仅按需同步,而不是持续同步
【发布时间】:2014-07-28 18:04:07
【问题描述】:

对于一个项目,我需要在应用端数据库(iOS、Android、WebApp)和服务器端后端之间进行同步。 MeteorJS 对我来说可能是正确的选择,只有项目需要免费的可配置同步,这意味着它应该:

  • 离线永久保存数据
  • 仅按需同步,例如每分钟、每小时或每天一次

因此,我可能想使用 Meteor-Cordova 和 GroundDB。 我的问题:

是否可以仅按需同步流星数据库(minimongo mongo)而不是立即同步?

这样做的原因是为了节省数据计划和服务器端的带宽。

问候

【问题讨论】:

    标签: cordova meteor synchronization


    【解决方案1】:

    这完全可以通过使用methods 来返回数据库数据而不是通常的pub/sub 模式。您仍然可以通过构建一个匿名集合在客户端拥有一个local (sessional) minimongo database,它提供了客户端 mongoDB 的所有好处,但不是被动更新,而是在您认为适合您的方法时填充/重新填充它来电。这里唯一需要注意的是,您的方法需要返回 EJSON - 即实际文档而不是游标。

    也很容易使用amplify 在会话之间缓存数据库,然后在用户重新连接时轮询和区分,这将进一步减少带宽。我认为这个功能有效地内置在 GroundDB 包中,但我从未真正使用过它,只是推出了我自己的。

    【讨论】:

    • 您好richsilv,感谢您的快速回复。我现在不能忽视它,因为到目前为止我还没有接触过 Meteor(好吧,除了例子)。但从你所说的来看,这听起来很容易而且可行。所以我还可以将集合从服务器拉到我的应用程序上,然后断开连接,更新它们并随时重新连接?既然你写了我必须构建集合客户端? EJSON 应该不是问题。另外,以后是否可以在本地实现离线存储,所以没有 5mb 的限制,比如分别在 Android SQLite 或 iPhone DB 中?
    • 差不多,是的。我不知道这些数据库的相关 API,但我确信它们存在并且可以以完全相同的方式使用 - 这只是在你的 Meteor 代码中编写一个有效的 poll-and-diff 并调用它的情况需要时,无论是重新连接还是更频繁(GroundDB 可能会为您处理)。
    • 刚找到这个,应该可以解决光标问题 -> EJSON: github.com/zol/meteor-famous-leaderboard/blob/master/client/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多