codecamp

TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计原理

在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析。通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能有以下几个要点:

l  接收请求和返回响应,通常是HTTP的请求响应。

l  获取配置信息。

n  识别游戏,根据请求中的信息,获取到具体游戏的相关配置。

n  识别渠道,根据请求中的信息,获取针对具体渠道的配置。

n  根据请求中的信息,获取特定游戏在渠道上的参数

l  处理请求逻辑,根据请求种类不同(登录,支付),处理流程不同。

 

为了灵活方便地对不同渠道的通信逻辑做出配置和对应。我们需要将特定的渠道逻辑和配置作一个简单的抽象,以接口-实现的方式将渠道逻辑封装成为独立模块。以下可以做出一个简单的服务端流程图。

 

 

图1

 

这样一来,我们可以将整个TYPESDK服务端的架构拆分为以下主要模块/类:

l  HTTP处理框架

n  处理HTTP协议,接收请求,返回响应。

l  配置处理工具类

n  从持久化位置读取配置至内存备用

l  逻辑模块管理器

n  统一管理和加载各渠道的逻辑模块

l  各渠道逻辑模块

l  主逻辑流程控制器

 

而其中牵涉到的实体类大致有如下:

l  渠道配置类

l  游戏配置类

l  用户信息类

l  订单信息类

l  其他中间封装类(请求req,返回resp等等),不再赘述

 

根据以上分析,聚合SDK服务端的整体设计就完成了,无论使用何种语言技术,都可以实现出一个简单的服务端。但是,这个服务端在具体的逻辑上还存在逻辑缺失,在实际应用中还不能满足我们的使用需求。以下的文章里,我们会简单列举若干实际接入中遇到问题以及设计上的解决方案。

这个项目已开源,大家有兴趣可以自己研究或者参照项目编写自己的聚合SDK

项目地址:https://code.csdn.net/typesdk_code

项目地址:https://github.com/typesdk

TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
TYPESDK手游聚合SDK服务端设计思路与架构之三:流程优化之订单保存与通知
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }