帮助我设计一个更好的解决方案来同步单个应用程序用户和服务器之间的聊天消息。如果应用程序脱机,我想将消息存储在应用程序数据库中,并在互联网可用时将它们推送到服务器。如果同时有人向用户发送消息,我想根据时间戳正确安排它们。但在这种情况下,时间篡改可靠吗?如何在离线/在线模式下正确同步聊天消息?
回答
是的时间戳是可靠的。但请确保在发送处于待处理队列中的消息时不更新时间戳。
期待,这是建立一个广播经理,因为你已经有一个应用程序,数据库的东西可以很容易的一种方式。
步骤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