2016-03-12 4 views
1

Я рассматриваю PouchDB & CouchDb как альтернативу Amazon Cognito Sync для гибридного мобильного приложения, которому понадобятся данные, синхронизированные между устройствами и пользователями. У меня есть pouchdb, работающий в небольшом примерном приложении, которое синхронизируется с локальным couchdb.Перехват сообщений PouchDB с использованием CouchDB

Мне нужно уметь перехватывать сообщения между pouchdb и couchdb в Java, чтобы делать что-то в ответ на эти события синхронизации. Похоже на синхронизаторы синхронизации Amazon Cognito Sync. Кроме того, я продолжаю думать так же, как АОП «Весна».

Поскольку couchdb имеет интерфейс для отдыха, я думал, что могу указать pouchdb на свой сервер приложений, на котором есть контроллер, который прослушивает любой запрос с именем db в качестве базы. Когда запрос, из pouchdb входит в контроллер останова Java, может необязательно что-то сделать, затем перенаправляет запрос в конечную точку конечного остатка couchdb и получает ответ, затем необязательно что-то делать, а затем возвращает ответ на pouchdb.

Это похоже на возможное решение? В настоящее время я работаю над попыткой использовать эту концепцию. Кто-нибудь еще сделал что-нибудь подобное? Какие-либо серьезные проблемы с этим подходом? В настоящее время я использую Java 8 с Spring Boot & Jersey.

ответ

0

Я думаю, что архитектура выглядит следующим образом:

  • данных пусто везде.
  • Данные об изменениях, устройства, в которых данные изменяются, подталкиваются через API REST.
  • Ваш мастер-сервер, отправьте уведомление GCM или APN на устройства.
  • В вашем прослушивателе уведомлений вы проверяете тип уведомления и синхронизируете данные.
  • Если новое устройство подключается к вашему «списку устройств для синхронизации», вы отправляете push-уведомление для синхронизации данных.
  • Сохраните список подключенных устройств.

Те же идеи относятся к каждому устройству/веб-браузеру. У вас есть локальный кеш, который вы нажимаете на «master», если он изменяется локально.

У вас будет много дел, чтобы иметь дело, и я не думаю, что есть проекты с открытым исходным кодом, которые предлагают тот же самый patter, что и Cognito Sync.

Также подумайте о масштабируемости, устройствам не нужно тянуть «хозяин», мастер отправляет уведомление, чтобы запускать устройства для загрузки данных.

Вы должны иметь дело с различиями, регулярными проверками и т. Д. Удача

Смежные вопросы