Репликация между локальными экземплярами PouchDB

#pouchdb

#pouchdb

Вопрос:

Возможно ли синхронизировать несколько локальных экземпляров PouchDB на разных устройствах друг с другом, когда нет подключения к Интернету, скажем, в интрасети?

Если это возможно, я предполагаю, что каждому устройству необходимо будет иметь доступ к своей базе данных через URL, на который можно указать в коде согласно документам по репликации PouchDB?

Следующий вопрос будет заключаться в том, могут ли все устройства затем синхронизироваться с удаленным экземпляром CouchDB, когда станет доступен Интернет?

Комментарии:

1. У вас должен быть сервер с подключением к сети. Неважно, происходит это через «Интернет» или нет.

2. Спасибо @Flimzy, я рассмотрю подход с локальным сервером, с которым могут синхронизироваться все устройства, а сам сервер синхронизируется с облаком.

Ответ №1:

Я регулярно выполняю репликацию между виртуальными хостами на одном сервере, а также с помощью CouchDB в облаке.

Пока вы можете использовать HTTP для базы данных, все в порядке.

Комментарии:

1. Спасибо @Martin Bramwell, в идеале я хотел бы, чтобы два планшета синхронизировали свои экземпляры PouchDB друг с другом, но для этого потребовалось бы сделать базы данных на устройстве доступными через HTTP URL. Я не уверен, как это сделать, и возможно ли это вообще?

2. Я полагаю, вам нужно было бы заглянуть в WebRTC, но я ничего об этом не знаю. Это если вам нужно на 100% отказаться от сервера. Если все клиенты могут синхронизироваться друг с другом через промежуточный сервер, у вас будет видимость P2P-синхронизации, если не реальность.

3. Сервер-посредник звучит как хороший подход, еще раз спасибо.

Ответ №2:

Вы можете синхронизировать две локальные базы данных PouchDB, если они находятся на одном устройстве.

Если они находятся на разных устройствах, вам нужен какой-то сервер для установления соединения между ними. Это может быть локальная CouchDB или PouchServer.

Я не знаю вашего варианта использования, но если вы создадите что-то вроде приложения Electron, вы можете запустить в нем PouchServer. Это позволило бы вам синхронизировать локальные устройства.

Это работает на всех устройствах, которые могут запускать nodejs. Мы даже заставили это работать в приложении Cordava, но оно не было стабильным в работе, поэтому мы пока отказались от автономной синхронизации.