#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, но оно не было стабильным в работе, поэтому мы пока отказались от автономной синхронизации.