一共6张GIF,共9M,请耐心等待。
为了方便大家观察服务器的数据,测试账号已公开,要是有什么情况请通知我,(当然万一发生了类似超额的情况我不一定会解决),另一方面会这样做的主要原因是自己搭建的话可能比较麻烦。
注:从2016年12月31日起,该项目中的所有的第三方API Key已经换成测试账号中的新秘钥,且之前的 API Key 都被弃用。
Abcd123!@#
Abcd123!@#
高德 Key 要 BundleID,请各位自行配置,不用地图也一样。
该项目一共接入了三个第三方服务,分别为七牛、LeanCloud 和高德地图,对应的 API Key 各位请向服务商申请,然后在 SGAPIKeys.h
中进行配置。
除此之外,LeanCloud 的配置请参考 TO-DO 的 LeanCloud 配置指南 ,这是必需的,毕竟 LeanCloud 的 SDK 没有提供类似事务的功能。
如果你对这个感兴趣的话,请查看以下内容,并对照相应代码进行理解。
相关代码位于 SGSyncManager.m
和配置于 LeanCloud 云函数中的 nodejs 代码。
该同步思路来源于以下两篇回答,并根据项目需求总结而来。
服务端和各种客户端(手机端,平板端,web端)怎样进行数据同步?
每一批次两个并行队列,每次最多同步X条数据,超过X条下次进行同步。
每批同步分上传和下载(与队列不对应),若上传或下载数超过上限,则下一批次同步。
lastSyncTimeOnServer = lastSyncTimeOnClient
,表明服务器数据没有变化,则仅需要上传本地修改过的数据和新增的数据(Send Changes)lastSyncTimeOnServer > lastSyncTimeOnClient
,则进行全量同步,先对比同步所有已有数据,再将其他数据从服务器上下载(Full Sync)以下几种情况会影响同步时数据的原子性:
从我大致写好同步功能(2016-6-20)到今天(2016-12-30)一共产生了3300条同步记录,暂时没有发现数据错误的地方,如果各位发现这方面有什么问题和Bug请一定提交 issue,非常感谢。
同步记录截图:
TO-DO is available under the MIT license. See the LICENSE file for more info.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。