亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

類似Evernote多客戶端與服務器同步數據的最佳方案?

類似Evernote多客戶端與服務器同步數據的最佳方案?

江戶川亂折騰 2019-04-07 09:38:09
這里說的同步是:手機App內有一個sqlite的數據庫,以便他離線時可以增加一些數據,例如拍的照片以及寫的文字等.當聯網時,自動把離線時寫的東西提交給服務器同時,如果用其他客戶端改變的舊內容或刪除了舊文章,那么在App里也做出對應的修改和刪除,保證本地App與服務器始終是一模一樣的目前采取的方案是按最后修改時間來做處理,如果ID相同的項目,始終以修改時間最新的那個作為標準,如果App本地數據庫出現有服務器不存在的項目,那么就把本地的刪除.可有其他更優的方案實現類似Evernote的多客戶端同步?
查看完整描述

2 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

刪除的邏輯有問題
如果本地創建了新項目,服務器是肯定沒有的,而本地的就被刪除了。
當一個項目被刪除時,數據庫內仍然應該留有【ID=xx被刪除】的刪除記錄;只要沒有這個刪除記錄,就是新增的記錄。若干天后可以清理老的刪除記錄;天數取決于你認為多長時間所有客戶端都會同步一次。
多個客戶端在離線狀態下改變了同一個文件可能造成沖突
Dropbox的處理方法是復制出一個conflictcopy文件。
我還是偏好覆蓋為最新版本,并在服務器保留歷史版本若干天。
不過,要判斷誰是【最新版本】并不容易。在網絡上,你不能保證時鐘是同步的。時區的問題容易解決,使用UTC就行。即使如此,UTC絕對時間也無法保證精確。
                            
查看完整回答
反對 回復 2019-04-07
  • 2 回答
  • 0 關注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號