【问题标题】:Adobe AIR: online/offline database syncAdobe AIR:在线/离线数据库同步
【发布时间】:2011-08-01 11:56:22
【问题描述】:

我正在开发一个 AIR 应用程序,它应该可以在线和离线模型中运行。用户可以在离线时执行各种操作,结果将保存在本地数据库中。一旦用户上线,同样需要与全局数据库同步。我在上面搜索了一下,似乎 Adob​​e LCDS(生命周期数据服务)是唯一可用的选项。但是,它是一种企业解决方案,而且成本太高。

还有其他实现吗?有没有人使用过 CouchDB 进行在线/离线同步?

感谢和问候, 卡皮尔考希克

【问题讨论】:

  • 据我所知,您只能将 SQLite 用于 AIR 的本地数据库存储。至于与服务器通信,你可以像 DennisJaamann 推荐的那样使用 WebOrb,还有BlazeDS,或者你可以通过链接ZendAMFRocketAMF 滚动你自己的解决方案。
  • 嗨丹尼斯.....感谢您的 cmets。我检查了 WebOrb,它看起来确实很有希望。我会尝试创建一个原型来更好地理解它......再次感谢!
  • 嗨 NoobsArePeople2 .....与服务器通信不是我要在这里解决的问题。正如您所提到的,有很多方法可以做到这一点。我要解决的问题是数据库同步黑白应用程序和服务器。我已经用 BlazeDS 做了一些小工作......但肯定会检查 ZendAMF 和 RocketAMF......谢谢!!

标签: apache-flex actionscript-3 air


【解决方案1】:

为了在仅使用 Air 应用程序时与您的服务器进行数据库同步,您对于使用哪种后端技术没有任何要求。 LCDS 使它更简单,但这不是您唯一的选择。哎呀,如果你愿意的话,你可以只使用一个普通的 PHP 脚本来为你做同步。

最困难的部分是您需要弄清楚您的同步算法,这样您就不会丢失任何信息。通常我所做的是,当应用程序再次在线连接时,它会将离线时修改/创建的所有信息(修改时的时间戳)发送到服务器,然后服务器有一个算法来检查是否离线信息比以前所做的更新(或根据您的情况执行一些其他业务规则)。当服务器决定哪些数据是好的时,它会将更新的数据发送给客户端并有效地同步所有内容。

这可以通过普通的 HTTP 请求、轮询或推送来完成。

【讨论】:

  • 您好 J_A_X .....感谢您的回复。我知道这绝对是可行的......但正如你所说,困难的部分是同步算法。从我读到现在的内容来看,这是一项相当重要的任务。所以,我一直在寻找一个更简单的选择。 Couch DB 似乎会自动处理同步部分......所以我试图了解它是否符合要求!
猜你喜欢
  • 1970-01-01
  • 2011-12-05
  • 2020-01-27
  • 2017-01-06
  • 1970-01-01
  • 2010-09-21
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多