Synchronization 同步PHP服务器、iOS和Android客户端

Synchronization 同步PHP服务器、iOS和Android客户端,synchronization,client-server,Synchronization,Client Server,我想有一个android和iOS应用程序和一个PHP服务器。 客户端将脱机使用该应用程序,并与服务器同步。所有内容都存储在服务器上,如果有新的客户端进入,它将从服务器获取所有数据。 此外,服务器将是一个web应用程序(另一个与服务器同步的客户端) 我看到有很多现有的解决方案,比如parse或firebase 如果我决定自己实现它,你会有什么建议,RestKit 我考虑服务器上的RESTWebService和关系数据库,因为我在所有客户机上都有关系数据库(SQLite) 同步算法呢?。我读了一些帖

我想有一个android和iOS应用程序和一个PHP服务器。 客户端将脱机使用该应用程序,并与服务器同步。所有内容都存储在服务器上,如果有新的客户端进入,它将从服务器获取所有数据。 此外,服务器将是一个web应用程序(另一个与服务器同步的客户端)

我看到有很多现有的解决方案,比如parse或firebase

如果我决定自己实现它,你会有什么建议,RestKit

我考虑服务器上的RESTWebService和关系数据库,因为我在所有客户机上都有关系数据库(SQLite)

同步算法呢?。我读了一些帖子,有些帖子说要保存时间戳并进行比较,但如果客户端上的时间和服务器上的时间不一样呢。当然我总是可以同步时间,但是如果客户端离线一段时间呢。
如何解决这个问题?

在Android中,如何创建一个服务,在网络可用时定期检查服务器(使用广播接收器和计时器任务)。
我不确定iOs,但在安卓系统中,我已经在我的应用程序中实现了这一点。

此网站用于回答特定的编程相关问题。这并不是为了帮助您做出关于如何编写特定应用程序的广泛决策。定义了体系结构(同步/异步客户端-服务器),定义了语言,所以没有那么广泛。我不是问如何写东西,我是问如何做决定,如何解决特定的同步问题。好吧,这样的事情不是SO的目的:。我引述其中的话:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。”这是参考页面上的第4项。通过问“使用什么算法”,我认为你是在要求一个“工具”来完成这项工作。一般来说,问题本质上应该更“实用”。好吧,你误解了我的意思,这与工具无关,与编写解决方案时应考虑的内容有关,但这本身不是一个编码问题,这是一个设计决策,因此,如果您遵循以下指导原则,则与主题无关:stackoverflow.com/help/on-topict问题是,如果客户端脱机,则客户端上的“创建时间”与服务器上条目的“创建时间”不同。客户端的上次同步时间将不准确,如果在这两个时间差之间在服务器上创建了新条目,则此客户端将无法获取条目。很抱歉,但我不理解客户端中的“创建时间”。创造什么?为每个更新分配ID怎么样?检查ID比时间戳容易当我在表中插入一个新条目时,我会保存该条目的创建时间(插入时间戳)。假设客户端时间是早上6点,服务器时间是早上5点。客户端上的最后一次同步时间是早上6点。我在服务器上创建了一个新条目,它的插入时间戳是5AM。客户端从未获得此同步,因为客户端上的上次同步时间是早上6点。有比比较时间戳更好的解决方案吗?对于每个条目,给它一个ID、一个唯一的数字或字符串。另一种方法是,首先找到服务器和客户端的时间差,并使用它进行检查。这可以通过将客户端的时间作为请求对象发送到服务器来完成,找到差异,然后返回差异。以及如何确定要同步的ID?