整体设计:
ota 架构
golang&beego
在设计中,采用了golang 语言,使用了开源的beego , beego 有很多不完善的地方,也可以使用gin进行ota 服务器的搭建
beego开源
beego 核心route , 下面就设计了一个route ,不同的http 请求可以设计不同的route
route
服务器ota 逻辑
鉴于source code 不能公布,就写出基本思路
- 本地服务器搭建jenkins, 然后jenkins 建立job, 制作ota的增量包与全量包,同时进行rsync 指令传送到ota 的阿里云服务器
- 本地服务器搭建jenkins,能够启动ota 服务器的部署. 本地git pull push 修改ota 服务器的code
- ota 服务器的code 处理逻辑,要考虑终端设备请求的情况,如果要升级,ota 服务器反馈 升级包的url 位置,这样终端设备能够下载,进行ota 升级
备注: ota 服务器其实主要就是处理,包的位置信息,终端设备请求,能正常返回即可
使用golang 编写双map 对应关系,类似二维数组
ex:
absOtaPackagePath map[string]string
fullOtaPackage map[string]string
deltaVersionSrcToVersionDes map[string]map[string]string
fileOtaPackagedByName map[string]map[string]*struct_indexInfo
route 部分code
package myroute
import (
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/upgrade_req", &controllers.upgradeReq{})
beego.Router("/test_one_device_id", & controllers.testOneDeviceId{});
}
网友评论