Android 手机与网络的同步算法
我在两个平台上有一个简单的note应用程序,一个是移动平台(Android和iOS),另一个是基于web的。我要这两个同步 我的问题是:我如何确定哪个版本的便笺(android或web)较新,并且该文本必须同步?事实上,我需要一个同步算法。若我使用时间戳,若用户在手机上的日期时间出现错误,同步系统就会出现问题。我想要最新的编辑同步到所有客户端 例如,如果移动应用程序处于脱机状态并进行了一些更改,同时我们在同一注释中对服务器进行了更改,并且当移动应用程序联机时,应该保留哪些更改?解决办法是什么Android 手机与网络的同步算法,android,ios,windows,algorithm,web,Android,Ios,Windows,Algorithm,Web,我在两个平台上有一个简单的note应用程序,一个是移动平台(Android和iOS),另一个是基于web的。我要这两个同步 我的问题是:我如何确定哪个版本的便笺(android或web)较新,并且该文本必须同步?事实上,我需要一个同步算法。若我使用时间戳,若用户在手机上的日期时间出现错误,同步系统就会出现问题。我想要最新的编辑同步到所有客户端 例如,如果移动应用程序处于脱机状态并进行了一些更改,同时我们在同一注释中对服务器进行了更改,并且当移动应用程序联机时,应该保留哪些更改?解决办法是什么 最
最后,最好的方法是什么?我想要最好的同步方法客户端不应该使用本地时间。只有服务器有正确的时间。客户机具有时区,可用于向用户显示适当的时间。粗略地说,同步算法可能如下所示:
X注释
,并向服务器发送更新注释的事件(请求)注释X
的新事件如果移动应用程序处于脱机状态并进行了一些更改,同时我们在同一注释中对服务器进行了更改,并且当移动应用程序联机时,应该保留哪些更改?解决方案是什么?当您需要在服务器上实现
merge
机制时就是这种情况。这是一件相对复杂的事情。基本思想是在客户端上存储编辑的历史记录,并发送更改的历史记录,而不仅仅是更新的注释。然后服务器应该比较更改的历史记录并进行合并。没有100%有效的合并算法,例如,即使Evernote
有时也无法合并注释。