服务端接入

来自AnySDK 文档
跳转至: 导航搜索


服务端接入概述和架构

概述

嘿西游服务端在逻辑上分为游戏服务器和中转服务器。

游戏服务器采用C++编写,使用Sql Server 2008作为关系型数据库。

中转服务器基于AnySDK的miniGameServer(miniGameServer源码托管在github上,https://github.com/AnySDK/miniGameServer ),所以其采用了PHP+MySQL技术栈。中转服务器做为游戏服务器和AnySDK服务器通信的中间角色,负责提供如下图(图1)所示的,AnySDK所需的默认登录验证地址默认支付通知地址。我们开源了中转服务器的源代码,并托管在github上。

Game create page.jpg
图1:AnySDK客户端游戏配置界面

除此之外,中转服务器还负责:1、维护用户session以供游戏服务器验证;2、存储AnySDK服务器通知过来的订单信息,并异步告知具体的游戏服务器发放道具。

游戏服务器和中转服务器既可以部署在同一台服务器上,也可以部署在不同的服务器上。目前我们将这2个角色部署在了同一台Windows Server 2008上面。

架构

下图(图2)是AnySDK的登录流程,在这个流程中,GAME-SERVER 由嘿西游服务端的中转服务器来担当。真正的游戏服务器只和中转服务器通信(如图3橙色箭头所示流程)。

登陆流程.jpg
图2:anysdk登录流程

嘿西游登陆流程.png
图3:嘿西游登陆流程

安装miniGameServer

我们执行的miniGameServer安装过程和miniGameServer文档所述的安装过程有些不同,miniGameServer的README.md文档中是使用nginx或apache作为web服务器,而此处我们使用的是IIS 7.5。

miniGameServer安装在 Windows Server 2008 + IIS 7.5 + PHP-CGI 5.6.12 + MySQL 5.5 环境下。IIS + PHP 环境的搭建方式网上随便搜索一大堆,此处不再赘述。

1、在IIS中创建站点 hxy.chinacloudapp.cn (此站点为假站点,您无法访问),设置好站点根目录(此处设置的根目录E:\www),将miniGameServer的代码上传到E:\www\anysdk\hxy目录下,操作完之后的目录结构如下图所示:

嘿西游miniGameServer目录结构.png

2、安装MySQL并创建数据库。

3、接下来打开浏览器并访问miniGameServer安装地址 http://hxy.chinacloudapp.cn/anysdk/hxy/index.php/install ,按照安装页面提示安装miniGameServer,安装成功之后,AnySDK游戏配置界面所需要的默认登录验证地址默认支付通知地址分别是:http://hxy.chinacloudapp.cn/anysdk/hxy/index.php/api/user/login http://hxy.chinacloudapp.cn/anysdk/hxy/index.php/api/payment/callback

基于miniGameServer实现中转服务器具体功能

安装好miniGameServer之后,要使它能够作为我们的中转服务器,就还需要对它进行一下编码修改,这其中包括:1、修改原有登录验证转发接口,在登录成功之后创建用户session;2、新建session查询接口;3、新建通知游戏服务器发放道具的异步脚本,这个脚本将由Windows任务计划程序来调用。

验证登录结果,创建用户session

提供session查询接口

接收支付通知

异步告知道具发放

游戏服务器和中转服务器通信

查询用户session

接收道具发放通知