阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 3228阅读
  • 0回复

[云安全技术和产品专区 ]游戏盾SDK接入指南的介绍

级别: 论坛粉丝
发帖
2050
云币
4117
#iqhm,u7D  
概述 J:mu%N`  
G(|(y=ck  
) R a/  
通过本文,您可以了解到如何使用游戏盾产品的SDK,接入游戏盾。 qY~$wVY(  
[backcolor=transparent]典型接入场景 I$6 f.W  
!MF"e|W  
{GH`V}Ob  
集成准备 Zh~Lm  
O3w_vm'  
  1. BqEubP(si  
    获取appKey。集成游戏盾SDK之前,首先需要在阿里游戏盾管理控制台中添加新应用,获得appKey。 }2!5#/^~  
  2. }^ Ua  
    下载SDK并解压缩。 Zxxy1Fl#.[  
^* /v,+01f  
_]~ht H  
接入说明 #u2&8-Gh  
"/K&qj  
}A'<?d8   
在游戏盾管理控制台页面,下载对应版本的SDK文件后,进行SDK接入。 fF-\TW  
g7}z &S ;_  
Unity3D SDK接入 ]R0A{+]n  
xP/1@6]_Je  
  1. 打开unity3d,编辑游戏脚本。
  2. 3_eml\CY  
    打开MonoDevelop,在类文件定义部分定义SDK外部方法 ALSDK_GetNextIPByGroupName。 /&!d  
  3. =*>4Gh i  
    定义SDK方法外部引入。 /%q9hI   
    DllImport("__Internal")]private static extern long ALSDK_GetNextIPByGroupName(string gName);
  4. !9<RWNKV)Y  
    在工程启动函数中,调用函数 ALSDK_GetNextIPByGroupName。调用参数为 fighterServers.GameName.aliyunID.AliYunCeng.com,调用参数即为分组的ID。 qL;T&h  
  5. VU0tyj$  
    函数返回的即为配置在 fighterServers.GameName.aliyunID.AliYunCeng.com 分组中分配的游戏盾IP。
  6. acju!,G  
    保存后对项目工程进行编译,编译为 Xcode 工程文件。 ZYD88kQ  
  7. H{A| ~V)  
    将SDK文件中的 AISDK.framework 文件拖动到工程中,直接进行编译及运行。 674oL,  
  8. e %v4,8  
    在console里查看编译结果。 [.Wt,zrE  
    cxJK>%84  
    1.152.55.120就是客户端连接游戏盾获取当前可用的IP地址。
I7z]%Z  
a&c#* 9t{  
Window SDK接入 oY6|h3T=Q$  
]3y5b9DuW  
;@Hi*d[  
游戏盾提供三种形式的Windows平台SDK:
  • 嵌入式SDK
  • 代理式SDK(非独立进程形式)
  • 代理式SDK(独立进程形式)
n]fbV/ x  
这三种形式的SDK分别满足不同的需求。 N[bf.5T  
XQY&4tK  
嵌入式SDK ]j$p_s>  
JTB~nd>  
.&}4  
嵌入式SDK在形式上表现为一个动态链接库,共包含三个文件:YunCeng.h YunCeng-WINDOWS.dll YunCeng-WINDOWS_dll.a。宿主应用程序运行的时候,加载SDK,在连接宿主应用程序的服务前,调用SDK接口,获取group id对应的next IP,然后使用获取到的next IP完成所有的通讯。 `FB?cPR  
[backcolor=transparent]Code demo U+r#Y E.  
Aag)c~D  
[backcolor=transparent]编译链接方法
  • 编译时不需要特殊选项。
  • 链接时,需要链接 YunCeng-WINDOWS_dll.a 库。
iE gM ~  
c%Cae3;  
代理式SDK(非独立进程形式) wJR i;fvi  
A-Pwi.$  
nzJi)A./  
被宿主应用初始化之后,SDK在后台启动若干代理线程,代理宿主应用和其服务器之间的通信,宿主应用只需连接本地端口即可,游戏盾的IP获取逻辑对宿主应用透明。 ]9< 9F ?  
SDK在形式上表现为动态链接库,共包含 YunCeng-Agent.dll YunCeng-Agent.h YunCeng-Agent_dll.a YunCeng-WINDOWS.dll 这四个文件。YunCeng-Agent.dll 运行时依赖 YunCeng-WINDOWS.dll。 !=:MG#p  
[backcolor=transparent]Code demo S!!\!w>N  
'*;eFnmvs:  
[backcolor=transparent]编译链接方法
  • 编译时不需要特殊选项。
  • 链接时,需要链接 YunCeng-Agent_dll.a 库。
la{uJ9Iw@}  
kCjI`=7$[  
代理式SDK(独立进程形式) f#Cdx"  
0@x$Cp  
AbI*/ |sY  
启动一个独立进程,代理应用程序和服务器之间的通信,游戏盾的IP获取逻辑对应用程序透明,代理表项通过配置文件传递给SDK。 m1o65FsY08  
代理式SDK(独立进程形式)由三个文件组成,YunCeng-Agent-daemon.exe, YunCeng-Agent.dll, YunCeng-WINDOWS.dll,其中exe文件的运行依赖另外两个动态库。 sH,)e'0  
配置文件使用ini文件格式,示例如下。 UXB8sS*wQ?  
fvMhq:Bu  
进程启动示例如下: ',s7h"  
K}3"KC  
F8;4Oj  
Android SDK接入 ]%8;c  
:p)9Heu  
  1. 'p+QFT>Ca  
    初始化。调用其它接口前,需要调用此函数进行初始化。[backcolor=transparent]函数说明: +9rbQ? '  
    [backcolor=transparent][font=微软雅黑, &amp][backcolor=transparent]int YunCeng.init(String appKey) KBHKcFk  
    • 参数appKey为集成准备中获取的appKey。
    • 返回值0表示成功,其它返回值说明参见附录:返回值定义。
  • PlRs- %d  
    获取nextIP。 建议您先在游戏盾管理控制台上建立分组及分组使用IP列表。通过此函数动态地返回可访问的IP地址。[backcolor=transparent]函数说明: 3Il/3\  
    [backcolor=transparent][font=微软雅黑, &amp][backcolor=transparent]String YunCeng.getNextIpByGroupName(String groupName) Y8'_5?+ 0  
    • 参数groupName为控制台上配置的分组名。
    • 返回值为对应的可访问的IP地址。
  • t U= b~  
    >,vW  
    IOS SDK接入 tS|zf,7  
    /M `y LI  
    (`/i1#nR  
    [backcolor=transparent]运行环境
    • iOS 5.1及以上系统版本
    • 3G、4G或Wi-Fi网络
    M|=$~@9#X  
    [backcolor=transparent]前期准备 'z!#E!i  
    在使用SDK前,需要先将SDK添加到应用的工程中,步骤如下:
    1. 将SDK压缩包解压缩,得到 YunCeng.framework。
    2. 使用XCode打开应用工程,将 YunCeng.framework 从 Finder 中拖到应用工程的Project Navigator 中。
    > BCX%<&  
    [backcolor=transparent]SDK接入
    1. QnLg P7Ft  
      初始化。在请求动态IP之前,应用需要调用SDK的初始化函数,初始化函数的原型如下: 9sU,.T  
      /! @brief 初始化int YunCeng_Init(const char app_key);@param app_key@return YC_CODE/ EoW zHa  
      [backcolor=transparent]注意:参数app_key是在游戏盾管理控制台申请的appKey。app_key如果被泄露,可能会被攻击者用来伪造应用请求从游戏盾控制中心获得动态IP,对应用的后端服务器发起DDOS攻击。建议将 app_key 保存在keychain中。
    2. I19F\ L`4  
      请求动态IP。在初始化完成之后,应用可以通过下面的函数向游戏盾控制中心请求一个动态IP。 } U1shG[  
      /! @brief 获取动态IP地址int YunCeng_GetNextIPByGroupName(const char group_name, char ip);@param group_name@param ip 出参,动态IP地址@return YC_CODE/
      • 参数group_name是在云盾控制台创建的分组名称。
      • 参数ip是输出参数,在函数执行成功之后保存动态IP地址。
      • e ;r-}U  
        返回值说明参见附录:返回值定义。 "fd=(& M*l  
        使用样例: m?G+#k;K  
        char ip[16];int ret = YunCeng_GetNextIPByGroupName("group1", ip);
    vJ}  
    g c=|< (  
    附录 tzJtd  
    =DwH*U /YR  
    yE{UV>ry  
    uW_ /7ex  
    返回值定义 V t;&2v  
    baGI(Dk  
    [tr=rgb(239, 251, 255)][td]0
    返回值定义
    成功
    1000-1999网络通信错误
    2000-2999appkey及初始化错误
    3000-3999游戏盾控制中心错误
    4000-4999与游戏盾控制中心数据交换错误
    9000-9999SDK自身错误
    Z9bPj8d  
    如果问题未能解决,请联系售后技术支持 K%_JQ0`  
    [ 此帖被燕儿199606在2017-10-20 11:45重新编辑 ]
    发表主题 回复主题
    « 返回列表上一主题下一主题

    限100 字节
    批量上传需要先选择文件,再选择上传
     
    验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
    上一个 下一个
        ×
        全新阿里云开发者社区, 去探索开发者的新世界吧!
        一站式的体验,更多的精彩!
        通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)