胡 婧 万 坤 武汉大学珞珈学院 湖北武汉 430000
【文章摘要】
Mysql 数据库是一个开放源码、体积小、速度快、总体拥有成本低的小型关联式数据库管理系统,因此被广泛地应用在Android 游戏开发中。怎样更好地将 Android 游戏服务器与Mysql 结合起来应用于实 际,己成为Android 游戏开发领域 中的一个热点,因此,本文介绍了Android 游戏的服务器在基于Mysql Server 的详细配置过程。
【关键词】
Android; 游戏; 服务器; Mysql; 数据库Android 游戏开发中一般将服务器配置在Mysql 数据库上。Mysql 数据库具有速度快、免费、性能、稳定低等优点,因此广泛应用于企业级互联网,游戏开发及电商等领域。Socket 服务器是经努力逐渐发展起来的一种技术。它是一种可于某处运行(一般是在远程物理服务器)并监听连接尝试的程序。它接受并管理来自客户端的连接,只能规划客户端间的信息传送路线。Socket 服务器依托一个IP 地址或主机名称,在至少一个端口上监听连接尝试(例如,主机名称为electrotank.com, 端口为9899)。
1 服务器配置
本文分为安装Mysql Server,配置文件,数据库建立,动态库使用说明,启动说明,关服六个部分。以下是具体的服务器配置过程 :
1.1 安装Mysql Server,版本5.5 或以上版本
1.2 配置文件
CrossServerConfig.ini其中[CrossServer_GateConfig] 的Port就是单服中的CrossServer_GatePort 端口,crossserver_gate 所在机器ip 就是单服中得CrossServer_GateIP
i. 配置文件ServerConfig.ini LogControllerConfig.ini GateConfig.ini Channelization.ini 说明见ini 文件配置(主要是配置IP、端口、数据库)其中ServerConfig.ini 中IsOpenCrossServer=1 ;0 不开启 1开启CrossServer_GateIP=127.0.0.1; 跨服中心服gate IPCrossServer_GatePort=8091; 跨服中心服gate 端口这三个配置是开启跨服的配置ii. 配置文件MapConfig.ini 控制场景单线人数iii.ServerID.txt 是平台服务器ServerID和中清龙图的区服ServerID 的映射关系配置
1.3 数据库建立
运行TLJCrossServerData.sql 建立数据库
运行sql 脚本TLJGameData.sql 建立游戏数据数据库运行TLJLogData.sql 建立日志数据库注意脚本内的数据库名字必须和配置文件中得数据库名字一样
1.4 动态库使用说明机器绑定动态库libvalidchecker_{ 机器代码}.so, 拷贝到/usr/lib64 目录下,并重命名为libvalidchecker.solib/libcurl.so.4 拷贝到/usr/lib64 目录下
1.5 启动说明:(切到应用程序所在目录)
第一步:启动跨服db 服 gdbcrossserver_database(等待db 服启动成功后再进行后面步骤,生成startapp 文件表示启动成功)
第二步:启动跨服比武活动服 gdbcrossserver_auxiliary(等待活动服启动成功后再进行后面步骤,生成startapp 文件表示启动成功)
第三步:启动跨服网关服 gdbcrossserver_gate
第一步:启动世界服务器gdbworldserve(r 等待世界服启动成功后再进行后面步骤,生成startapp 文件表示启动成功)
第二步:启动试剑台活动服务器gdbauxiliaryserver
第三步:启动场景服务器gdbsceneserver
第四步:启动网关服务器gdbgateserver
第五步:启动GMT gdb gmgateserver
第六步:启动日志导入工具 gdblogcontrolle(r 日志入库工具配置文件LogControllerConfig.ini)
第七步:启动罗盘接口gdbtencentlogserver( 不需要罗盘接口服的就不需要启动)
第八步:启动充值接口gdbrechargeserver( 不需要充值接口服的就不需要启动)
( w o r l d s e r v e r 、a u x i l i a r y s e r v e r , 、sceneserver、gateserver,、gmgateserver,、l o g c o n t r o l l e 、 t e n c e n t l o g s e r v e r 、rechargeserver 都是可执行程序,视为普通应用程序,可以不使用gdb,直接运行,gmgateserver、logcontrolle,tencentlogserver、rechargeserver 这四个应用可以单独重启,不影响游戏)
1.6 关服:
关服顺序:
g m g a t e s e r v e r 、g a t e s e r v e r 、s c e n e s e r v e r 、t e n c e n t l o g s e r v e r 、r e c h a r g e s e r v e r 、a u x i l i a r y s e r v e r 、worldserver、logcontroller
关服顺序:
c r o s s s e r v e r _ g a t e 、c r o s s s e r v e r _auxiliary、crossserver_database关服方法:发送SIGQUIT 或者SIGTERM,例如 kill –s SIGQUIT pid 别直接kill -9 或者 ctrl+c(这样会导致关服时不能存档)(先启动跨服中心服,再启动单服;先关闭单服,再关闭跨服中心服)首次开启跨服,建立跨服数据库后,进行比武数据初始化,使用脚本CrossServerScript/ InitBIWU.php 初始化比武数据,配置文件Config.php 的CrossServerDBInfo 字段,表示跨服数据库信息,"ImagePlayerTable" 不需要修改,1000 表示初始化1000 个比武镜像数据。SingleServerDBInfo 是跨服战区的分服数据库信息,"ImagePlayerTable" 不需要修改,250 表示从单服取250 个镜像数据,最后一个字段表示区服id。具体参看DBInfo 类的定义。
2 规范约定说明
2.1 具体的接口必须详细给出具体的输入输出项,并给出相应的注释说明,以便我们能通过文档能验证到接口是否符合需求。
2.2 对某些数据类型(如商品类型)必须给出具体的类型列表。
2.3 针对新增记录的说明,建议新增数据时记录主键不要采用自增的方式,避免我们同步多服或全服时出现错误
2.4 数据转输:中文转utf-8 并encode后转输,时间格式转换为时间戳。
2.5 针对数据列表需有分页返回机制,每页记录可固定也可输入,如固定建议每页20 条。
2.6 每个接口必须提供一个研发自测的输入输出例子,方便调试。
【参考文献】
[1]C.J.Date.数据库系统导论 [M]. 机械工业出版社 .
[2]Jobe Makar.ActionScript for MultiplayerGames and Virtual Worlds[M].New RidersPress