我有一個可在 IOS 和 Android 上使用的 angular 應用程式,還有一個相同的網站版本。網站版本實時更新主資料庫。這些應用程式當前呼叫我的 api 來從主資料庫讀取,因此始終需要互聯網。
現在我還想為應用程式添加離線可用性。
所以我需要本地設備上的所有用戶資料,無論用戶在多少臺設備上安裝應用程式。我的問題主要是關于如何以最佳方式進行同步。用戶將能夠在離線時添加、編輯和洗掉那里的資料,同時他們也可以在實時網站版本上執行相同操作。
我想放一個時間戳,然后我可以接收帶有時間戳的資料,我可以將時間戳與每個資料條目進行比較,然后將資訊更新或添加到我的本地資料庫中。
最好的方法是什么?我應該為我放入遠程和本地服務器的每個條目添加時間戳嗎?或者是否有人對此問題有任何其他解決方案。由于時間戳同步如果定期發生可能會很好,但我的本質上需要實時同步,所以當用戶確實有連接時,本地和主服務器都會立即更新,并考慮我的一些用戶有超過 8000 行的同步速度非常重要
對于背景關系,應用程式/網站是一個記錄保存系統,因此用戶可以添加許多可以編輯洗掉等的行。
主資料庫是 mysql 和我計劃使用 SQLite 的應用程式
提前致謝
uj5u.com熱心網友回復:
不總是與服務器有聯系的分布式系統應該有一個 guid,它用唯一的 id 標識整個資料庫、分布式服務器和主服務器中的每一行。
當客戶端再次連接時,您可以使用 REST Api 發送所有新資料。
此外,您還需要時間戳列,當然還有最后一次發送資料的時間,以便您只能將新的和更改的資料發送到主服務器。
如果可以在服務器和本地使用Mysql。您可以使用 mysql 復制來保持所有資料同步,但開發您自己的系統將保證只發送最少的資料。
一個小型的測驗系統很快就建立起來了,但您還需要構建安全措施,以便每個人都可以更改或插入資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/391343.html
