Beheben von Konflikten mit der fortlaufenden Replikation

Ich bin neu in CouchDB und PouchDB und verwende es, um ein Kontaktverwaltungssystem zu erstellen, das auf Mobil- und Desktopgeräten synchronisiert und offline verwendet werden kann. Ich sehe, dass es unendlich einfacher ist, PouchDB zu verwenden, als ein PHP / MySQL-Backend schreiben zu müssen.

Ich habe es erfolgreich verwendet und wenn ich widersprüchliche Änderungen an Offline-Geräten vornehme, verwendet CouchDB einen Algorithmus, um einen Gewinner willkürlich auszuwählen und ihn dann korrekt an alle Geräte zu senden.

Ich möchte einen benutzerdefinierten Algorithmus implementieren, um widersprüchliche Datensätze zusammenzuführen. Hier ist der Algorithmus, den ich verwenden möchte:

Wenn ein Datensatz auf einem Client gelöscht und auf einem anderen lediglich aktualisiert wird, gewinnt die aktualisierte Version, es sei denn, beide Clients stimmen dem Löschen zu.Der Datensatz mit dem letzten "geänderten" Zeitstempel wird zum Master und der ältere Datensatz zum sekundären.Alle Felder, die nur im sekundären Bereich existieren (oder im Master leer sind), werden in den Master verschoben.Die Master-Revision wird gespeichert und die Sekundärrevision gelöscht.

CouchDB's Guide hat eine guteErläuterungIch habe jedoch keine Ahnung, wie ich es mit der PouchDB-API während einer fortlaufenden Replikation implementieren soll. LautPouchDB APIgibt es ein "onChange" Listener in den Replikat-Optionen, aber ich verstehe nicht, wie man es verwendet, um Konflikte abzufangen.

Wenn jemand ein kurzes Tutorial mit einem Beispielcode schreiben könnte, würde ich und ich sicher, dass es viele andere PouchDB-Benutzer schätzen würden!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage