保留上次同步时间的位置

时间:2016-02-07 23:03:54

标签: android synchronization timestamp

我有一个Android应用程序,每30秒更新一次,以从服务器检索最新消息。目前,我使用一个时间戳来保存服务器数据库中2016年初的秒数,用于用户上次同步以及消息,以检测需要传递的消息

我担心哪种方法可以更安全地保持同步时间,以防止由于断开连接或同步过程中的任何错误等原因而丢失数据:

  1. 当前进场(在服务器上保留上次同步时间)?
  2. 在客户端数据库中保留上次同步时间(受黑客攻击?)?
  3. 定义自定义流程以确保数据已交付(如在线支付确认)?

2 个答案:

答案 0 :(得分:1)

我会这样做:一旦获取新数据,客户端应该向服务器发送确认...通过这样做,服务器将确定客户端上次同步的确切时刻......并且会避免由于无论原因(连接丢失等)导致的任何数据丢失

答案 1 :(得分:1)

一般来说,服务器和API的大多数方法都是无状态的。

通过在服务器上存储同步日期,您可以阻止用户重新安装重置他们的应用。因为他们只会获取最新数据。这可能是想要的方法(例如Snapchat将不保留任何历史记录(至少在客户端上))但是如果你想列出过去的数据,这只会使事情变得复杂。

如果您选择将其存储在客户端上,您可以对用户获取所需数据更有信心。要防止对服务器的攻击,您应该使用其他机制。如果用户清除了他的数据,他只会再次获取所有必需的信息,因为客户端知道何时以及要更新的内容。

你的第三种方法与第一种方法类似,但对最新状态更有信心。您可以知道用户读取和检索的内容,但您仍然可以在服务器上存储状态。

所有这些都说,这很大程度上取决于你的实际目标以及你想要实现的目标。