现在的位置: 首页 > 综合 > 正文

自动更新的一个小问题

2013年11月25日 ⁄ 综合 ⁄ 共 599字 ⁄ 字号 评论关闭

来自:http://blog.csdn.net/xnn2s/article/details/12304673

我们自动更新的原理是基于版本对比,从更新服务器下载新的补丁文件,用文件的md5表示版本。

早些时候的一个项目,每次客户端发布的时候,要带一个这个客户端的当前文件的md5列表以及这个列表的md5,这个列表md5作为我们当前版本号。这个版本号的作用是,和服务器比较,版本是否有变化。

这次新的项目,发客户端的时候,要带一个md5列表和当前版本号比较麻烦,就修改了一下机制。

[1] 客户端发布的时候,不带md5列表和当前版本号。

[2] 更新服务器记录第一个版本的md5列表和总版本下来。

[3] 没有更新过的客户端是没有版本号的,他发一个空的版本号给更新服务器,更新服务器通过初始版本和最新版本是否相等来判断当前客户端版本是否要更新。

这样做的唯一好处是,客户端发布的时候,不用关心版本。

现实很容易就遇到问题了。

给91发了一个版本,记作v1;

过了一小段时间,给另外一个渠道发了修改过的版本,v2。

如果我们维护多套独立客户端和独立的更新服务器,也不会有事。但为节约维护的量,我们多个渠道是用一套客户端和更新服务器的。这时候,更新服务器的版本严格来讲,应该是v2的,为支持v1更新不出错,还是要用v1的发布的时候初始版本md5列表和版本号。这样的话,只要外面还存在最旧的客户端,我们这个初始版本号就要一直维护下去。

【上篇】
【下篇】

抱歉!评论已关闭.