2014-04-17 16 views
5

Czy istnieje wsparcie dla "Kanałów" Couchbase Sync Gateway w DB Pouch? Chciałbym mieć możliwość korzystania z aplikacji, zobaczyć podzbiór ogólnych danych i utworzyć nowe dane, aby móc udostępniać osoby, którym je udostępniają.Brama synchronizacji "Kanały" w PouchDB

Czy to możliwe z funkcją PouchDB? Czy musiałbym bezpośrednio współpracować z serwerem lub korzystać z couchbase lite na urządzenia mobilne?

Odpowiedz

3

PouchDB jest wzorowany na CouchDB, który nie ma koncepcji kanałów, więc nie ma planów wdrożenia go w PouchDB.

Jednak jednym prostym sposobem rozwiązania problemu jest zsynchronizowanie PouchDB z CouchDB, a następnie zsynchronizowanie go z Couchbase Sync Gateway. Powodem trzeba CouchDB jako pośrednik jest to, że istnieje kilka problemów z bezpośrednim PouchDB < -> Couchbase Sync Brama synchronizacji, chociaż mam nadzieję, że powinny one zostać rozwiązane wkrótce (patrz np this i this).

2

Oto rozwiązanie, aby prace klienta woreczek dB Couchbase Sync Brama nad kanałami użytkownika:

var sync = function() { 
    var opts = { 
     live: true, 
     retry: true, 
     //-- from here 
     filter: "sync_gateway/bychannel", 
     query_params: { 
      "channels": channels 
     } 
     //-- to here 
    }; 

    database.sync(syncServer, opts); 
} 

Kluczem tutaj jest po prostu przekazać filtr & query_params tak jak jest, brama synchronizacji i tak ma możliwość zrozumienia tego filtru.

+0

co się stanie, jeśli zmieni się kanał użytkownika? – jedi

+0

@Jedi: Będzie to miało takie samo zachowanie jak Couchbase Lite, w której lokalna baza danych zacznie otrzymywać dane przypisane do nowych kanałów, ale wtedy catch będzie nadal mieć dokumenty wcześniej zsynchronizowane, które nie są pożądane. Tak więc, aby zachować czystość i porządek, wystarczy wyczyścić lokalną bazę danych i zsynchronizować, aby uzyskać tylko nowe dane kanałów. –