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

Я работал над настольным приложением, используя AppJS (HTML5, JQUERY). В моем приложении я прошу пользователя ввести путь к папке на его / ее локальном компьютере (на котором запущено приложение) и сохранить эту информацию в моей базе данных на сервере.

Мне приходится помещать файл в эту папку (на компьютере пользователя) всякий раз, когда файл обновляется на сервере. как я могу этого достичь? как я могу синхронизировать клиент и сервер, чтобы сервер мог отправить этот файл на локальный компьютер.

Я написал приложение планировщика для сервера, которое отправит файл клиенту. Но я не понимаю, как отправить этот файл конкретному клиенту. какие параметры мне нужно передать файл клиенту, как MAC-адрес компьютера клиента или что-то еще.

Как Dropbox синхронизируется?

Пожалуйста помоги!!!

2 ответа

Решение

Если вы можете запустить nodejs на сервере, вы можете использовать socket.io для связи между клиентом и сервером. Думайте об этом как о чате, таком как MSN или Skype. Когда пользователи открывают приложение appjs, оно может подключиться к серверу.

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

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

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

Вы можете попробовать использовать такие инструменты, как rsync, которые могут помочь вам достичь этого. http://en.wikipedia.org/wiki/Rsync

Другие вопросы по тегам