Как лучше всего выполнить одностороннюю синхронизацию с серверной базы данных на iPhone? - PullRequest
6 голосов
/ 21 января 2010

На моем сервере есть база данных размером около 3 МБ. Я хотел бы отправить это с моим приложением для iPhone.

Самое главное, что я хотел бы продвигать изменения в базе данных (вставка, обновление, удаление) на iphone. Какой лучший способ сделать это? Я имею в виду - что нужно на - сервер - клиент (= iphone) - между; как передать эти данные?

Я довольно свободно использую технологии на стороне сервера; прямо сейчас у меня есть sqlite-база данных на сервере, заполненная данными, которые я хочу синхронизировать с iphones.

Ответы [ 3 ]

2 голосов
/ 21 января 2010

Как часто вам нужно обновлять базу данных, и насколько срочными являются изменения?

Если обновления базы данных происходят нечасто и не срочно, я бы запустил приложение при запуске для проверки новой версии базы данных, а если она изменилась, загрузил весь новый файл.

Приложение всегда загружает небольшой файл метаданных с известного URL при запуске. Файл метаданных содержит идентификатор версии для последней версии и место, где можно загрузить эту версию базы данных. Если идентификатор версии изменился по сравнению с версией, которая уже установлена ​​в приложении, будет загружена новая версия. Если идентификатор версии не изменился или не может проверить, приложение может продолжать использовать версию, которую оно имеет.

Совет для профессионалов: если вы хотите отобразить индикатор загрузки для загрузки, укажите размер базы данных в файле метаданных. Сотовые сети часто имеют прозрачные прокси, которые удаляют заголовок Content-Length из ответов HTTP.

1 голос
/ 18 марта 2012

Интересно, если вы рассматривали возможность использования Sync Framework для управления синхронизацией. Если это вас интересует, вы можете взглянуть на проект с открытым исходным кодом, службу синхронизации OpenMobster. Вы можете выполнить следующие операции синхронизации

  • двусторонний
  • односторонний клиент
  • одностороннее устройство
  • 1010 * Bootup *

Кроме того, все модификации автоматически отслеживаются и синхронизируются с облаком. Вы можете отключить приложение, когда сетевое соединение не работает. Он будет отслеживать любые изменения и автоматически в фоновом режиме синхронизировать его с облаком при восстановлении соединения. Он также обеспечивает синхронизацию, как iCloud, на нескольких устройствах

Кроме того, изменения в облаке синхронизируются с помощью push-уведомлений, поэтому данные всегда актуальны, даже если они хранятся локально.

Вот ссылка на проект с открытым исходным кодом: http://openmobster.googlecode.com

Вот ссылка на iPhone App Sync: http://code.google.com/p/openmobster/wiki/iPhoneSyncApp

1 голос
/ 24 января 2010

Попробуйте использовать веб-хуки.

Концепция WebHook проста. WebHook - это обратный вызов HTTP: HTTP POST, что происходит, когда что-то бывает; простое событие-уведомление через HTTP POST.

веб-приложение, реализующее WebHooks отправит сообщение на URL когда происходят определенные вещи. Когда веб приложение позволяет пользователям зарегистрироваться свои собственные URL, пользователи могут затем расширить, настроить и интегрировать это приложение со своим собственным обычаем расширения или даже с другими приложения по всему интернету. Для пользователь, WebHooks - это способ получения ценная информация, когда это происходит, вместо того, чтобы постоянно опрашивать эти данные и ничего не получая ценный большую часть времени. WebHooks имеют огромный потенциал и ограничено только вашей фантазией! (Нет, это не может мыть посуду. Тем не менее.)

Вы можете узнать больше о Webhooks здесь: http://www.webhooks.org/ и http://webhooks.pbworks.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...