【问题标题】:Strategy to sync offline local data with REST API after resuming connection恢复连接后将离线本地数据与 REST API 同步的策略
【发布时间】:2020-07-24 02:38:19
【问题描述】:

我有一个可在 android 上和通过浏览器使用的混合应用程序。两个客户端都使用 REST API 和 websockets。数据存储在 localStorage 中。我希望移动设备能够修改离线资源,并在连接到互联网后与API同步数据。

如何进行这样的数据对比 连接互联网后得到正确的版本?

问题场景:

  1. 用户拥有从手机上的 API 获取的笔记列表。
  2. 用户关闭互联网
  3. 用户使用 JWT 令牌保持登录状态。修改笔记、删除另一条笔记、添加新笔记或对笔记执行任何其他操作
  4. 用户打开互联网。
  5. 这里应该发生什么?

我对如何解决这个问题的想法:

  • 创建同步端点并在接收到连接时按 updated_at 列比较集合。
  • 比较对象与此utility 的差异

【问题讨论】:

    标签: rest synchronization offline-mode


    【解决方案1】:

    根据您对应用程序的期望,您可能希望实施适当的同步机制,能够处理的不仅仅是笔记列表。

    简单的方法:捎带更新日期,您可以比较版本日期并决定最后写的获胜。

    艰难的路:我建议你看看CRDTs。这些数据结构确保状态最终保持一致,使其非常适合您的需求。 存在许多实现,它取决于您的工具链,例如 Logux 为 javascript 提供了一些 CRDT。

    您还可以依赖用于数据同步和冲突解决的数据库,例如 https://couchdb.apache.org//https://pouchdb.com/。 https://riak.com/products/riak-kv/riak-distributed-data-types/index.html?p=10947.html 还提供 CRDT 支持。

    如果你想深入研究合并文本数据,我建议你看看谷歌为他们的文档应用开发的Diff-Match-Patch算法,有很多端口可用。

    注意为应用实现真正的离线和同步功能绝非易事。

    【讨论】:

      【解决方案2】:

      我找到了制作离线第一个移动应用程序的教程,其中讨论了制作具有同步功能的离线应用程序的一些最佳实践。请参考下面的教程链接,如果有帮助,请告诉我。

      How to Make Your App Available Offline

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多