【问题标题】:Intercepting PouchDB communications with CouchDB backend拦截 PouchDB 与 CouchDB 后端的通信
【发布时间】:2016-03-15 21:57:44
【问题描述】:

我正在考虑将 PouchDB 和 CouchDb 作为 Amazon Cognito Sync 的替代方案,用于需要在设备和用户之间同步数据的混合移动应用程序。我有 pouchdb 在一个与本地 couchdb 同步的小型示例应用程序中工作。

我需要能够在 Java 中拦截 pouchdb 和 couchdb 之间的来回通信,以便对这些同步事件做出响应。有点像 Amazon Cognito Sync 的同步触发器。另外,我一直在思考很像 Spring 的 AOP。

由于 couchdb 有一个 rest 接口,我想我可以将 pouchdb 指向我的应用程序服务器,该服务器有一个控制器监听任何以 db 名称为基础的请求。当来自 pouchdb 的请求进入 Java Rest Controller 时,可以选择做某事,然后将请求转发到 couchdb 的真正 rest 端点并获得响应,然后可以选择再次执行某些操作,然后将响应返回给 pouchdb。

这似乎是一个可行的解决方案?我目前正在努力让这个概念发挥作用。有没有其他人做过这样的事情?这种方法有什么重大缺陷吗?目前,我正在使用 Java 8 和 Spring Boot 和 Jersey。

【问题讨论】:

    标签: jersey synchronization couchdb pouchdb amazon-cognito


    【解决方案1】:

    我认为架构是这样的:

    • 数据到处都是空的。
    • 数据发生变化,数据发生变化的设备通过 REST API 推送。
    • 您的服务器“主服务器”,向设备发送通知 GCM 或 APN。
    • 在通知侦听器中,检查通知类型并同步数据。
    • 如果新设备连接到您的“要同步的设备列表”,您将发送推送通知以同步数据。
    • 保留已连接设备的列表。

    相同的想法适用于每个设备/网络浏览器。您有一个本地缓存,如果它在本地发生更改,您会将其推送到“主”。

    您将需要处理很多案例,而且我认为没有开源项目可以提供与 Cognito Sync 相同的模式。

    还要考虑可扩展性,设备不必拉你的“master”,master发送通知触发设备下载数据。

    您必须处理差异、定期检查等... 祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      相关资源
      最近更新 更多