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

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

可有其他更優的方案實現類似Evernote的多客戶端同步?

可有其他更優的方案實現類似Evernote的多客戶端同步?

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

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

要判斷誰是【最新版本】并不容易。在網絡上,你不能保證時鐘是同步的。
目前我改成所有更新到服務器的數據,都用服務器時間來更新時間戳,然后將該時間返回給客戶端,客戶端修改自己數據的時間跟服務器上一樣

查看完整回答
反對 回復 2023-05-06
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

自己沒有動手試過,但是也許可以試一下類似Git的同步方式?commit和update分離。 服務器端記錄所有的更新/提交信息,客戶端記錄從上一次的同步時間(如果有的話)后最終的修改記錄(添加/刪除應該是一樣的),然后客戶端把修改記錄發給服務器(同一賬戶的多客戶端可以通過消息隊列的方式排隊進行更新),當然,只有最后一個commit后發送更新請求的客戶端能獲得全部更新

當然,遺留問題就是指向同一個文件的不同修改造成的沖突的問題,沒想好該怎么處理……要不和git一樣提醒用戶自己手動解決?


查看完整回答
反對 回復 2023-05-06
  • 2 回答
  • 0 關注
  • 494 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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