码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-03-30 20:47:48      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

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发布与后台发布
【原创】我所理解的自动更新-资源打包流程
【原创】我所理解的自动更新-客户端更新流程
【原创】我所理解的自动更新-知识点讲解

本文中的服务器用的是linode,linode是啥就不需要过多介绍了吧。
有兴趣的童鞋可以通过https://www.linode.com/?r=000161937771838e320f2bda5fef0dbad54ad86c注册服务器,
r后面的数字是我的推荐码,如果你用了以上我推荐的推荐码,并且保持3个月是在线帐号,那么我将在三个月后得到20美元的信用,
这样也就是可以多用一个月最低档19.95美元的linode vps。
Referrals reward you when you refer people to Linode.
If someone signs up using your referral code,
you‘ll receive a credit of $20.00, so long as the person you referred remains an active customer for 90 days。

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

标签:

原文地址:http://www.cnblogs.com/ldr213/p/4378855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!