【问题标题】:cross-platform real time update for mobile phones手机跨平台实时更新
【发布时间】:2012-01-07 07:07:20
【问题描述】:

我正在寻找一种在用户之间同步存储在数据库中的项目的方法 所以这些用户中的任何一个人都从他的手机上改变了任何东西,这些改变将反映在数据库中,并与所有与他相关的用户实时同步 实现实时同步的最佳方法是什么?推送通知 ?城市飞艇是我要找的吗?

【问题讨论】:

  • 你在这里做了什么?
  • 我认为我可能会使用 pubnub.com

标签: android ios cross-platform urbanairship.com


【解决方案1】:

良好地同步数据通常特定于您的应用程序和数据。这超出了 SO 问题的范围,但如果您实施自己的问题,这里有一些想法......

一些有趣的设计点是:

  • 可靠地获得增量
  • 处理冲突
  • 实时到底有多实时?

为了可靠地获得增量,请小心依赖分布式机器的日期时间。这篇文章讨论了其中的一些挑战和一些替代方案。

Can I Rely on the iOS Device Clock Being Correct?

合并新实体很容易,但如果多人编辑同一个实体,您需要决定如何合并。 对于冲突,您可以按优先顺序排列 (1) 自动合并 - 提出一种算法,无需用户干预即可自动合并内容,理想情况下不会丢失数据 (2) 依靠用户进行合并带有接口和 (3) 一种自动合并形式:最后写入获胜。您还可以在其中交错修订 - 这是最后一次写入胜利的一种形式,但修订被保留。如果合适,您还可以在实体的字段级别自动合并。我对上述问题的帖子涵盖了交错,但这取决于您的数据是什么。

实时有多真实?在同步偶尔连接的设备时,设备会越来越过时,需要时间才能赶上。考虑在通信模式中批量更改以优化,但它仍然不是实时的。在设计中接受这一点 - 当数据同步时,用户是否看到数据在当前视图中呈现动画效果?

在架构上,您可能希望通过 REST 服务或 SOAP Web 服务在云中公开您的数据,因为它是跨平台的。对于多个设备平台,您可能最终会移植同步算法。最好的办法是使用 Sqlite 之类的东西,这样您就可以共享您的设备数据库架构代码和 sql 语句。

【讨论】:

    【解决方案2】:

    我将从 Dan Grover 的演讲开始,“跨平台数据同步”:http://iphone2009.crowdvine.com/talk/presentation_file/5104/Grover_Syncing.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 2017-10-08
      相关资源
      最近更新 更多