软件更新服务之服务端搭建

软件更新服务之服务端搭建

欢迎访问我的博客https://www.marxcbr.cn/

说到软件更新相信大家肯定都不止一次两次见过了吧。在手机上,经常可以看到某某助手或者应用中心提示应用更新,而且会很醒目地告诉你:可以节约多少多少流量。在大家各自的PC上面也不止一次看到这种提示吧。

“检查到新版本x.x.x,当前版本是x.x.x,是否更新”

 

软件更新服务之服务端搭建
PC软件提示更新

 

 

软件更新服务之服务端搭建
Android软件提示更新

 

这种软件更新是怎么做到的呢开Android的不说,咱们本次讨论一下PC的软件是如何做到的怎么样br> 其实,流程是十分简单的,大家也是一想就能明白。
流程如下:

首先,咱们得先有一部远程服务器吧。用来存放软件更新的文件以及清单文件,以及搭建一个服务用以软件检测是否存在有新版本和下载新文件用
接着软件客户端,就是你的PC上面要有个服务去检测发现版本更新信息。可以在启动的时候,也可以在你点击软件检查更新的时候去检查版本信息。
点击更新后,下载清单文件,然后再比较一下清单文件和本地文件的差异,可以检测一下文件的MD5什么的。如果不一样的就下载更新,当然如果是不存在的,就更加得下载下来啦。
最后就是……你得有网,Internet,晓得吧,木得Internet谈自动更新(增量更新)都是“耍流氓”。。。

流程图如下:

 

软件更新服务之服务端搭建
最最最简单的流程

 

OK ,那么这个这么简单的流程咱们搞清楚了吗br> 清楚后,咱们分析一下我们服务器担任的角色。我们今天先不管客户端啦(虽然考虑的时候应该一起考虑,小声bb)
服务器要起到几个作用:
1、提供网络服务,就是得有简单文件下载服务和应答服务。
2、得有个文件夹存放更新文件,里面放更新文件和清单文件。
3、在网络中任意一个位置都可以访问到,而不仅限于自己的那个路由器……

所以,我们瞬间就可以想起了Python中自带的那个网络服务。。。但是,用过的人都知道它实在是太简单,难以胜任我们的这个需求啊。所以,这个时候,我们可以选用Flask这个小辣椒啦。什么不知道Flask是什么/p>

 

软件更新服务之服务端搭建
就是这个火药筒
简单普及一波:其实Flask那个图片不是辣椒啦,人家是装火药的啦
基于他,我们可以很容易地快速搭建好我们自己定义的服务。
再扯一下,单纯用这个框架简单地写个服务还是可以能应付一般点的并发量的。。。太大的并发量的话,就得采用其他策略去对付了。所以,我们现在讨论的是不考虑高并发情况的。

 

代码我直接就放上来吧。注释都有写作用的。
下面我就简单解释一下各函数的写法思路吧。

        5行

函数的目的就是这么简单。简简单单几十行就可以把这个服务给实现出来了。后面PC客户端在请求是否有新版本更新的时候,就可以用这个服务脚本来处理了。
当然,这里面还是有挺多没考虑到的问题的。比如被人家恶意下载导致服务器流量快速被消耗,高并发的状态下,它是否能顶的住/p>

    python    95行


今天文章大概就这样了,代码在手机上面看起来不是很舒服,建议用电脑浏览器打开。后续会给出 软件更新服务之客户端怎么玩的文章以及这个系列的Git仓库,大家可以到GitHub上面fork下来玩玩。所以,想想咱们从头到尾自己实现一个简单的软件更新服务是不是挺有意思的啊,哈哈哈。如果本文存在什么纰漏或者问题,欢迎大家留言回复指正。

来源:MARX-CBR

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月10日
下一篇 2019年4月10日

相关推荐