2013-06-25 138 views
1

我一直在使用AppJS(HTML5,JQUERY)開發桌面應用程序。在我的應用程序中,我要求用戶輸入他/她的本地計算機的文件夾路徑(應用程序正在運行)並將該信息存儲在服務器上的數據庫中。如何讓服務器和「客戶端桌面應用程序」保持同步?

無論何時在服務器上更新文件時,我都必須將文件推送到該文件夾​​(在用戶的計算機上)。我怎麼能做到這一點?我如何保持客戶端和服務器同步,以便服務器可以將該文件推送到本地計算機。

我已經編寫了服務器的調度程序應用程序,它將文件向下推送到客戶端。但是,我沒有得到如何將該文件推送到特定的客戶端。我需要什麼參數將文件推送到客戶端的機器MAC地址或其他東西。

Dropbox如何同步?

請幫忙!!!

回答

0

如果您能夠在服務器上運行nodejs,那麼您可以使用socket.io在客戶端和服務器之間進行通信。把它想像爲像MSN或Skype這樣的聊天室。當用戶打開appjs應用程序時,它可以連接到服務器。

當你有一個文件推送發送消息,如「updatedFile」,然後列出的網址。客戶端然後可以下載該文件並保存到本地磁盤。

這樣,所有連接的客戶端都可以下載更新,無需輪詢所有的時間 - 只需打開websocket即可。

當客戶端連接時,它可以發送一條消息changesSince時間戳,並接收從服務器上更改的所有文件的列表,然後它可以下載並保存到本地磁盤上。

+0

謝謝sihorton,您的寶貴意見/建議。這聽起來像是一個很好的解決方案。我會試試這個。謝謝。 –

+0

我剛剛發現了一個你可能想看看的項目:https://github.com/beatgammit/node-filesync它看起來和你描述的一樣。這與我提出的建議不太一樣,但您可以查看源代碼並獲得您自己實現的一些想法。 – sihorton

+0

非常感謝您的支持。 sihorton。 –

相關問題