我正在为多设备同步工作的后勤工作而苦苦挣扎。
比方说,我有一个离线网页(通过应用程序缓存)用作地址簿-我该如何构建一个强大的多设备同步系统。
我考虑了以下内容,但它似乎并不健壮:
每个设备有2个表:
-
同步(上次更新时的服务器表副本)-以及上次更新点的服务器时间戳。
-
"等待同步"-等待与服务器同步的设备上的更改。-这可能会插入、删除和更新项目。
然后当设备连接到服务器时:-
-
将所有更改上传到服务器(通过小型API),并将其从"等待同步"表中删除。
-
向服务器发送上次同步时间。
-
然后从那时起下载所有更新,并将其添加到设备上的"同步"表中。
-
更新同步时间。(利用服务器时间确保设备间的一致性)
这样行吗?还是会掉下来?
就像我说的从未尝试过多设备同步,似乎很难找到主题。
最后,有没有为此设计的框架?
任何对应用程序做过类似操作的人都很少见,因为离线网页——只需要逻辑顺序和我需要注意的任何"gotchyas"。
提前谢谢。
这可能很难做到,最后我意识到我需要做的是创建一个版本控制系统,类似于GIT。。。在JavaScript中。一旦您有了版本,您就可以根据更改版本号和所基于的更改做出合理的决定。
我不知道我开始的项目是否对你有用,它使用了这些概念,但即使不是,我觉得你也应该通读文档,因为它将帮助你思考如何解决更广泛的问题。这个项目现在停滞不前,因为我正在找工作(这是一项艰巨的工作),但我很快就会重新开始。
Matt Forrester