拦截与CouchDB后端的PouchDB通信

时间:2016-03-12 07:21:00

标签: jersey synchronization couchdb pouchdb amazon-cognito

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

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

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

这看起来像是一个可行的解决方案吗?我目前正在努力让这个概念起作用。还有其他人做过这样的事吗?这种方法有任何重大缺陷吗?目前,我正在使用Java 8和Spring Boot&泽西。

1 个答案:

答案 0 :(得分:0)

我认为架构是这样的:

  • 数据在任何地方都是空的。
  • 数据更改,数据更改的设备通过REST API推送。
  • 您的服务器" master",将GCM或APN通知发送给设备。
  • 在通知侦听器中,检查通知类型并同步数据。
  • 如果新设备连接到您的"设备列表以进行同步"您发送推送通知以同步数据。
  • 保留已连接设备的列表。

每个设备/网络浏览器都有相同的想法。你有一个本地缓存,你推送到" master"如果它在本地发生变化。

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

另外考虑可扩展性,设备不必拉动你的主人,主人发送通知来触发设备下载数据。

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