【原创】我所理解的自动更新-外网web服务器配置

ClientDownload和ClientUpdate共享渠道配置信息:

channel-0.php //以appstore的渠道为例

 1 <?php 
 2     define('APPNAME',  'TOKENAPPNAME');//应用版本号
 3     define('SERVER_MAJOR_VERSION',  'TOKENMAJORVER');//最新应用版本号
 4     define('SERVER_MAJOR_VERSION_TXT',  'TOKENMAJORTXT');//最新应用版本描述
 5     define('SERVER_RESOURCE_VERSION', ' TOKENRESOURCE_VER ');//最新资源版本号   
 6     define('SERVER_IOS_URL',  'http://version.mygame.com/TOKENMAJORVER/major/app.ipa');//ipa下载
 7     define('SERVER_ITMS_URL',  ''itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/****-http.plist');//浏览器直接安装ipa
 8     define('SERVER_APPSTORE_URL',  ' http://itunes.apple.com/gb/app/yin/idxxxxxxxx');//去appstore安装
 9     define('SERVER_ANDROID_URL',  'http://version.mygame.com/TOKENMAJORVER/major/app.apk');//apk下载
10     define('SERVER_DOWNLOAD_URL',  'http://version.mygame.com/TOKENMAJORVERSION/minor/fullres.zip');//资源整包下载
11     define('SERVER_APP_MD5', 'TOKENRESOURCE_MD5');//资源包MD5
12     define('SERVER_RESOURCE_BASE_PATH',’http://version.mygame.com/TOKENMAJORVERSION/minor/fullres/');//资源散文件
13     define('SERVER_RESOURCE_DIFF_PATH', ' http://version.mygame.com/TOKENMAJORVERSION/minor/diff/');//资源差异文件目录
14 ?>

其他渠道的配置文件,结构一致

ClientDownload配置:

index.php

 1 <html>
 2     <head>
 3         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4     </head>
 5     <body>
 6         <?php
 7             /*Usage:index.php?channelid=1*/
 8             $channelid = $_GET['channelid']; //渠道
 9             if (!isset($channelid)) {
10                 echo 'fk with no appver';
11                 return;
12             }           
13 
14             $channelfile = "channel-".$channelid.".php";
15             if (!file_exists($channelfile)) {
16                 echo "fk with no appver"; //渠道不存在
17                 return;
18             }           
19 
20             require($channelfile);
21         ?>       
22 
23         <table align='center'>
24             <tr>
25                 <?php
26                     echo "<tr><td align='center'><a href='".constant('SERVER_ANDROID_URL')."'>下载".constant('APPNAME').constant('SERVER_MAJOR_VERSION_TXT')."Android版本</a></td></tr>";
27                     echo "<tr><td align='center'><a href='".constant('SERVER_IOS_URL')."'>下载".constant('APPNAME').constant('SERVER_MAJOR_VERSION_TXT')."IPA版本</a></td></tr>";
28                     echo "<tr><td align='center'><a href='".constant('SERVER_ITMS_URL')."'>点我直接安装".constant('APPNAME').constant('SERVER_MAJOR_VERSION_TXT')."</a></td></tr>";
29                     echo "<tr><td align='center'><a href='".constant('SERVER_APPSTORE_URL')."'>去APPSTORE安装".constant('APPNAME').constant('SERVER_MAJOR_VERSION_TXT')."</a></td></tr>";
30                 ?>
31             </tr>
32         </table>
33     </body>
34 </html>

ClientUpdate配置:

check.php

 1 <?php
 2     /*
 3         Usage:
 4             check.php?channelid=1&appver=2&resver=3
 5         返回值描述
 6             1.客户端程序版本小于服务器程序版本,需要去appstore更新
 7             2.资源版本为0,第一次进入游戏时的版本[SERVER_MAJOR_VERSION SERVER_RESOURCE_VERSION SERVER_APP_MD5 SERVER_DOWNLOAD_URL SERVER_RESOURCE_BASE_PATH]
 8             3.资源版本大于0,但是小于服务器资源版本[SERVER_RESOURCE_VERSION MD5(PACKFILE) PACKFILE_URL SERVER_RESOURCE_BASE_PATH]
 9             4.资源版本大于0,并且跟服务器资源版本匹配
10             错误 404
11      */
12 
13     $channelid = $$_GET["appver"]; //渠道
14     if (!isset($channelid)) {
15 
16         echo "fk with no appver";
17 
18         return;
19 
20     }   
21 
22     $channelfile = "channel-" . $channelid . ".php";
23     if (!file_exists($channelfile)) {
24 
25         echo "fk with no appver"; //渠道不存在
26         return;
27     }   
28 
29     require($channelfile);
30     $appver = $_GET["appver"]; //客户端程序版本
31     if (!isset($appver)) {
32         echo "fk with no appver";
33         return;
34     }   
35 
36     //客户端程序版本号不可能小于0
37     if ($appver <= 0) {
38         echo "fk with no appver";
39         return;
40     }   
41 
42     //客户端资源版本
43     $resver = $_GET["resver"];
44     if (!isset($resver)) {
45         echo "fk with no resver";
46         return;
47     }   
48 
49     //客户端资源版本号不可能小于0
50     if ($resver < 0) {
51         echo "fk with no resver";
52         return;
53     }   
54 
55     $SERVER_MAJOR_VERSION = constant('SERVER_MAJOR_VERSION');
56     $SERVER_MAJOR_VERSION_TXT = constant('SERVER_MAJOR_VERSION_TXT');
57     $SERVER_RESOURCE_VERSION = constant('SERVER_RESOURCE_VERSION');
58     $SERVER_DOWNLOAD_URL = constant('SERVER_DOWNLOAD_URL');
59     $SERVER_APP_MD5 = constant('SERVER_APP_MD5');
60     $SERVER_RESOURCE_BASE_PATH = constant('SERVER_RESOURCE_BASE_PATH');
61     $SERVER_RESOURCE_DIFF_PATH = constant('SERVER_RESOURCE_DIFF_PATH');
62     if ($appver < $SERVER_MAJOR_VERSION) {
63         $echo '1'.';'.$SERVER_MAJOR_VERSION_TXT;
64         return;
65 
66     }
67 
68     if ($resver == 0) {
69         echo '2;'.$SERVER_RESOURCE_VERSION.';'.$SERVER_APP_MD5.';'.$SERVER_DOWNLOAD_URL.';'.$SERVER_RESOURCE_BASE_PATH;
70         return;
71     }   
72 
73      if ($resver >= $SERVER_RESOURCE_VERSION) {
74          echo '4';
75          return;
76      }   
77 
78     $filename = 'minor/'.$SERVER_RESOURCE_VERSION.'/'.$resver.'.zip';
79     $url = $SERVER_RESOURCE_DIFF_PATH.$SERVER_RESOURCE_VERSION.'/'.$resver.'.zip';
80     $file_md5 = md5_file($filename);
81     if ($file_md5 == FALSE) {
82         echo '404';
83         return;
84     }
85 
86     echo '3;'.$SERVER_RESOURCE_VERSION.';'.$file_md5.';'.$url.';'.= $SERVER_RESOURCE_BASE_PATH;
87 ?>

 

【原创】我所理解的自动更新-概要
【原创】我所理解的自动更新-环境搭建和协议制定
【原创】我所理解的自动更新-外网web服务器配置
【原创】我所理解的自动更新-APP发布与后台发布
【原创】我所理解的自动更新-资源打包流程
【原创】我所理解的自动更新-客户端更新流程
【原创】我所理解的自动更新-知识点讲解

转载于:https://www.cnblogs.com/ldr123/p/4378855.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

白宫启动AI.GOV计划,呼吁各界携手共同推进AI发展

来源&#xff1a;网络大数据摘要&#xff1a;近日&#xff0c;白宫启动了 ai.gov 计划&#xff0c;列出了特朗普政府与美国联邦机构采取的一系列人工智能举措&#xff0c;如美国国立卫生研究院(NIH)利用 AI 展开的生物医学研究项目以及美国交通部近期发布的关于自动驾驶汽车的报…

Qt连接MySQL数据库

1、将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录中。 2、准备数据库和数据表如下&#xff1a; 3、编写如下代码&#xff1a; #------------------------------------------------- # # Project created by QtCreator 2016-07-15T17:56:50 # #----------------…

关于手机权限

adb shell cd进入手机/data目录总显示opendir failed&#xff0c;permission denied 可能的原因有两个 1.手机没有root2.adb不是最高权限启动 针对1&#xff0c;PC上下载了一个KingRoot&#xff0c;可以root基本上的常用的手机 2.adb shell 后 su命令即可以在最高权限下运行 ad…

边缘计算不再“边缘”

来源&#xff1a;中国科学报摘要&#xff1a;5G商用时代来临&#xff0c;数据量将更加巨大、复杂&#xff0c;对计算提出更高要求&#xff0c;同时也为发展人工智能、边缘计算带来了新机遇。5G商用时代来临&#xff0c;数据量将更加巨大、复杂&#xff0c;对计算提出更高要求&a…

Qt中修改应用程序和标题栏的图标

一、修改应用程序图标 1.新建一个my.txt文件&#xff0c;打开后在其中加一句 “IDI_ICON1 ICON DISCARDABLE "应用程 序图标.ico"”。&#xff08;“应用程序图标.ico”是要添加的图片名&#xff0c;图片格式一定要是.ico), 然后保存并退出&#xff0c;将文件格式改为…

iOS一次定位解决方案(基于高德iOS SDK)

部分LBS应用&#xff0c;在打开app时获取当前的准确位置就能满足要求&#xff0c;一直开着定位&#xff0c;不仅会浪费流量也费电&#xff0c;所以这里给大家推荐一个一次定位的解决方法。 步骤如下&#xff1a; 1.开启定位&#xff0c;请求获取位置信息。&#xff08;注意&…

人类“第六感”首次被证实,研究发现人脑具有磁场感应能力

新证据表明&#xff0c;人类磁感可以让大脑感应到地球磁场来源&#xff1a;神经科技摘要&#xff1a;科学界已经知道鸟类可以利用地磁场进行导航&#xff0c;除此之外&#xff0c;科学家在自然界许多物种中都发现了磁感应能力&#xff0c;生物的磁感受能力也一直在业内被称作生…

用S-函数编写Simulink中的正弦模块

1、用S-函数实现一个正弦波信号源。要求其幅度、频率和初始相位参数可由外部设置&#xff0c;并将这个信号源进行封装。 S-函数程序代码如下&#xff1a; function [sys,x0,str,ts] ch2example17Sfun(t,x,u,flag,Amp,Freq,Phase) % 正弦波信号源 switch flag, case 0 …

fdsgds

public class Demo {public static void main(){//dfdsfdsfdsint i10; } }转载于:https://www.cnblogs.com/beyondbycyx/p/4391175.html

2019计算与系统神经科学大会Cosyne 前沿研究汇总

来源&#xff1a;混沌巡洋舰摘要&#xff1a;计算神经科学是一门超级跨学科的新兴学科&#xff0c;几乎综合信息科学&#xff0c;物理学&#xff0c; 数学&#xff0c;生物学&#xff0c;认知心理学等众多领域的最新成果。关注的是神经系统的可塑性与记忆&#xff0c;抑制神经元…

MATLAB中的S-Function的用法(C语言)

1. S-Function简介 S-Function是system-function的缩写。说得简单&#xff0c;S-Function就是用MATLAB所提供的模型不能完全满足用户&#xff0c;而提供给用户自己编写程序来满足自己要求模型的接口。 2. MEX函数与M文件的区别 第一&#xff0c; MEX 函数能实现的回调函数比…

npm国内镜像介绍

这个也是网上搜的&#xff0c;亲自试过&#xff0c;非常好用&#xff01; 镜像使用方法&#xff08;三种办法任意一种都能解决问题&#xff0c;建议使用第三种&#xff0c;将配置写死&#xff0c;下次用的时候配置还在&#xff09;: 1.通过config命令 npm config set registry …

一文读懂民航客机飞控系统

来源&#xff1a;传感器技术摘要&#xff1a;埃塞俄比亚航空公司波音737 MAX 8型客机当地时间10日坠毁&#xff0c;这是时隔不到5个月&#xff0c;波音同一型号飞机发生的第二起空难。鉴于两起事故具有明显的相似性&#xff0c;越来越多的将目标指向了该型号的设计缺陷——飞控…

VC创建DLL动态链接库及其调用

1.1 创建dll项目 1.2 为dll项目编写源文件 头文件dllDemo.hextern "C" _declspec(dllexport) int Sum(int a,int b);//加法函数。extern "C" _declspec(dllexport) int Max(int a, int b);//取较大值函数extern "C" _declspec(dllexport) int Mi…

10个免费开源的JS音乐播放器插件

点这里 音乐播放器在网页设计中有时候会用到&#xff0c;比如一些时尚类、音乐或影视类等项目&#xff0c;但这些 网页播放器 插件比较少见&#xff0c;所以这里为大家整理一个集合&#xff0c;也许会有用到的时候。 下面整理的播放器有些是支持自适应的&#xff0c;如果需要用…

用上AI、用好AI!AiRiA研究院“普惠AI,芯向边缘”战略发布会圆满举行

近年来&#xff0c;在万物智联的趋势下&#xff0c;物联网产业从概念炒作进入加速落地的实质性阶段&#xff0c;端侧数据处理能力与云端数据处理能力已变的同等重要&#xff0c;而AI芯片从“云端”走向“边缘”已呈现出不可逆的趋势。值此AI落地初探之年&#xff0c;为把“高高…

设置DIV半透明CSS代码:

设置DIV半透明CSS代码&#xff1a; div{filter:alpha(Opacity80);-moz-opacity:0.5;opacity: 0.5;} 说明&#xff1a; 1、filter&#xff1a;对win IE设置半透明滤镜效果&#xff0c;filter:alpha(Opacity80)代表该对象80%半透明&#xff0c;火狐浏览器不认 2、-moz-opacity&am…

百年科技的历史回顾与哲学反思

来源&#xff1a;科学的历程摘要&#xff1a;科学的社会化和社会的科学化是科学的世纪里两个基本的标志。回顾百年科技历程&#xff0c;不只是讲述一个历史故事&#xff0c;更是反省我们当下的处境。19世纪是第一个科学的世纪&#xff0c;二十世纪是第二个&#xff0c;当然也是…

Java知多少(28)super关键字

super 关键字与 this 类似&#xff0c;this 用来表示当前类的实例&#xff0c;super 用来表示父类。super 可以用在子类中&#xff0c;通过点号(.)来获取父类的成员变量和方法。super 也可以用在子类的子类中&#xff0c;Java 能自动向上层类追溯。父类行为被调用&#xff0c;就…

怎样写出简洁的css代码??★★★★

base.css 设置各种默认值&#xff1a; html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, …