2016-11-11 4 views
1

Ich versuche, eine Topologie zu bauen, die aus folgendem besteht:Gibt es eine Möglichkeit, zwischen zwei pouchdb-Instanzen zu synchronisieren?

  • Zwei-über-LAN verbunden Desktops eine native App ausgeführt wird.

  • Eine Web-Version der gleichen App.

Die Desktops werden nur die Verbindung zum Internet haben intermittierend, also sowohl die nativen Anwendungen, und der Web-App benötigen separate Datenspeicher haben, die bei der Online-Synchronisierung.

Dafür fand ich couchdb, die der perfekte Kandidat zu sein scheint. Ich baue die Desktop-Anwendung auf Electron, also denke ich daran, pouchdb damit zu verwenden und es mit Couchdb auf dem Server-Server zu synchronisieren, wenn es online ist.

Das Problem ist, dass diese 2 Desktops, auf denen Electron Apps mit pouchdb laufen, über LAN miteinander synchronisieren müssen. Bietet Pouchdb die Möglichkeit, mit einer Remote Pouchdb zu synchronisieren? Ich sehe nur Dokumentation für die Synchronisierung von Beutel und Couch.

https://pouchdb.com/guides/databases.html

Ich bin wirklich neu auf das Konzept zwischen Datenbanken zu synchronisieren. Weiß nicht ob ich etwas offensichtliches (oder offensichtlich unmöglich) frage. Schätze die Hilfe.

+0

Der beste Weg zu wissen wäre, es zu testen :) Aber ich denke, dass Sie eine indexedDB (lokale Datenbank mit PouchDB erstellt) nicht remote synchronisieren können. Eine Lösung wäre, eine CouchDB mit jeder Anwendung zu installieren. –

+0

Vielleicht ist das für Sie interessant: https://pouchdb.com/adapters.html#pouchdb_over_http Stellen Sie sicher, dass Sie den Abschnitt über PouchDB Server überprüfen. – Phonolog

+0

@Phonolog ist das nicht wie ein Ersatz für couchdb selbst? Du sagst, ich könnte einen Pouchdb-Server in der Electron-App laufen lassen? Und Anrufe von meiner App zum pouchdb-Server tätigen? Ich habe diese Seite überprüft, bevor ich die Frage gepostet habe, aber ich habe mich nicht darum gekümmert, weil es wie eine Implementierung des Couchprotokolls aussah, das serverseitig sitzen und mit der eingebetteten pouchdb synchronisiert werden soll, die auf der Clientseite über dem Netz sitzt. Ich habe wirklich keine Informationen gefunden, um den Pouchdb-Server in eine Elektronen-App einzubetten. – alokraop

Antwort

4

Wenn Sie p2p über beliebige Datenkanäle synchronisieren möchten, können Sie bei diesem Plugin aussehen wollen: https://github.com/nolanlawson/pouchdb-replication-stream

In Ihrem Fall, obwohl, da Sie eine native App schreiben, die Toten-einfachste Weg, um Verwenden Sie dazu express-pouchdb, um zwischen den beiden Desktop-Apps zu synchronisieren. Hier ist ein Video, das zeigt, wie das gemacht werden kann: https://www.youtube.com/watch?v=5iTzm8sTtd4

Alle zwei PouchDB Objekte können miteinander synchronisieren; Solange Sie PouchDB Objekte bearbeiten, können Sie sie mit db1.sync(db2) synchronisieren.

+0

Oh, das sieht aus, als ob es genau das ist, was ich wollte. Wird es überprüfen. Vielen Dank :-D – alokraop

Verwandte Themen