幫助我設計一個更好的解決方案來同步單個應用程序用戶和服務器之間的聊天消息。如果應用程序脫機,我想將消息存儲在應用程序數據庫中,並在互聯網可用時將它們推送到服務器。如果同時有人向用戶發送消息,我想根據時間戳正確安排它們。但在這種情況下,時間篡改可靠嗎?如何在離線/在線模式下正確同步聊天消息?
回答
是的時間戳是可靠的。但請確保在發送處於待處理隊列中的消息時不更新時間戳。
期待,這是建立一個廣播經理,因爲你已經有一個應用程序,數據庫的東西可以很容易的一種方式。
步驟1:創建一個BroadCastReceiver
偵聽網絡改變
良好SO張貼同樣可以發現here其中 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
用於檢測連接的變化。
步驟2:爲您的郵件創建INT國旗:
其中:假設:整數
0 - >未發送
1->發送
2->讀等。 。
所以每當用戶發送消息,請使用this的互聯網連接,如果互聯網是不是果店與您的應用程序,本地數據庫升旗>0
別的崗位服務器
如果從服務器保存爲升旗> 1 0
第3步得到了肯定的回調再次別的:現在你對你的廣播接收機的onRecieve
方法,檢查更改後的狀態是否是連接狀態(如在網絡連接建立時),然後從數據庫中將所有標記爲 - > 的消息從數據庫中提取出來,並在步驟2中再次進行驗證檢查後重新發送到服務器:確保你這次更新它們,而不是重新創建一個新條目!
這就是它!
謝謝:),這很有幫助:) –
我的榮幸。試試吧,讓我知道你是否需要任何進一步的幫助。此外,如果它的工作,將其標記爲答案,以便其他人可能會覺得它有用! – MadScientist
- 1. 在線/離線同步模型
- 2. 從Java Google Talk中檢索離線消息和聊天記錄
- 3. 向離線用戶發送聊天消息的問題
- 4. iOS:無法爲XMPP聊天提取離線消息
- 5. 通知離線用戶消息的最佳方式Android Xmpp使用openFire聊天
- 6. pouchDB和Backand,離線和在線同步
- 7. Socket.io離線消息
- 8. 線程未正確同步
- 9. C#聊天 - 如何正確顯示消息?
- 10. 正在同步PouchDB下線到PostgreSQL
- 11. Gradle離線模式 - 每天檢查一次在線數據源
- 12. 正在下載離線HelpContentSetup.msha
- 13. 在離線模式下使用流星
- 14. 在離線模式下注釋MKMapView
- 15. 在離線模式下加載網站
- 16. 使用MQTT實現離線聊天
- 17. 如何同步在線和離線數據庫
- 18. 我有聊天消息,其中DIV正在下降
- 19. 如何在GAE上建模聊天/消息系統(如whatsapp,LINE)
- 20. 在離線/在線模式下處理iPhone應用程序
- 21. 我可以在離線模式下閱讀FB API信息嗎?
- 22. ArrayList,線程和同步 - 如何準確同步多個線程
- 23. 如何檢索離線消息openfire XMPP?
- 24. 如何獲得離線消息的JABBERID
- 25. 多線程同步的正確模式? (C#)
- 26. 如何在MVC的在線和離線模式下創建項目工作?
- 27. 離線消息的Android
- 28. ejabberd mod_pubsub離線消息
- 29. 如何在單線程服務中正確分配多線程消息流?
- 30. Quickblox iOS下載聊天消息附件
您可以選擇[SyncAdapter](https://developer.android.com/training/sync-adapters/creating-sync-adapter.html) – hrskrs