Синхронизация между клиентом и сервером в Structurize работает следующим образом: www.geroncraft.ru
- Клиент инициализирует соединение с сервером. habr.com
- Получает от сервера список изменённых объектов (то есть объектов, которые изменили другие пользователи). habr.com
- Получает список локальных изменённых объектов (то есть объектов, которые изменил текущий пользователь). habr.com
- Объекты, которые были изменены только на сервере, сразу же сохраняются в локальную базу данных. habr.com
- Объекты, которые были изменены только локально, добавляются в коллекцию объектов для отправки на сервер. habr.com
- Объекты, которые были изменены и локально, и на сервере, помечаются для разрешения конфликтов. habr.com
- Отправляет информацию об изменённых локальных сущностях на сервер. habr.com
- Запускает процесс сохранения. habr.com
- Завершает процесс синхронизации. habr.com
Если синхронизация неудачна (например, пропала связь с сервером или пользователь отменил её), локальная база пользователя восстанавливается. habr.com