针对手机的跨平台实时更新

时间:2011-11-27 12:03:52

标签: android ios cross-platform urbanairship.com

我正在寻找一种在用户之间同步存储在数据库中的项目的方法 因此,这些用户中的任何一个都会从他的手机中更改任何内容,这些更改将反映在数据库和SYNC中,与所有与他相关的用户实时进行 什么是实现实时同步的最佳方式?推送通知 ?是我正在寻找的Urban飞艇吗?

2 个答案:

答案 0 :(得分:1)

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

一些有趣的设计要点是:

  • 可靠地获得delta
  • 处理冲突
  • 实时是如何实时的?

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

Can I Rely on the iOS Device Clock Being Correct?

合并新实体很简单,但如果多个人正在编辑同一个实体,则需要决定如何合并。 对于冲突,您可以按优先顺序(1)自动合并 - 提出一种算法,无需用户干预即可自动合并内容,理想情况下无数据丢失(2)依赖用户合并带有接口和(3)自动合并的形式:最后写入获胜。还有一些变体可以交错修改 - 它是最后一次写入获胜的形式,但修订版本仍然保留。如果合适,您还可以在实体的字段级别自动合并。我在上面提到的问题的帖子涵盖了交错,但这取决于你的数据是什么。

实时有多真实?当偶尔连接设备同步时,设备会越来越远,过时需要时间。考虑对通信模式中的一组变化进行批处理以进行优化,但仍然不是实时的。在设计中接受这一点 - 当数据同步时,用户是否看到当前视图中的数据动画?

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

答案 1 :(得分:0)

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