手机游戏服务器架设教程?
手机游戏服务器架设教程?
1.今天的手机游戏遍布全球 ,如果没有跨服赛事,就不好意思说是手机游戏。
说到跨服务,我们不得不谈谈匹配服务。例如,对于一个跨服务梯赛事,需要满意不同服务的玩家可以在同一屏幕上PK。为了以实力相近的玩家为对手,我们需要一个独立的匹配服来收集数据,然后分配房间。匹配服装也是跨服装比赛设计的基础。
我们可以选择http或socket作为典型的匹配服务通信层。本文将选择http作为游戏服和匹配服务的通信层。选择http方式,我们可以提供tomcat服务,非常方便。当然,如果我们不使用tomcat,我们也可以使用mina或netty自己的htttp服务。
设计理念也很简单,有点像游戏服务的业务处理器。我们需要这样做。对于不同的要求,我们都绑定一种方法来对应它。对于数据编解码,由于匹配服务的通信数据1通常相对较短,我们可以直接使用json进行序列化。
下面,开始我们的编码。
2.搭建minahttp服务
在前游戏的后台设计中,我们已经看到了如何使用mina来构建http服务。
3.消息通信
在游戏服务中,我们发送一个http请求。为了将请求分发给相应的处理器,匹配服务需要标记每条消息。最简单的方法是使用请求消息的类名。因此,我们必须将业务签名和参数合成到url中。换句话说,一个有效的url可能是这样的:
http://localhost:8899?service=MReqLadderApplyMessage¶m={"playerId":0,"score":0,"power":0}
为了区分游戏服和匹配服的消息类型,我们添加了一个M(Match)前
4.业务处理器
我们仍然使用它 @controller注释用@requestmapper注释来识别一个模块处理器来识别业务处理方法。不同的是,在游戏服务中,我们每个新闻的元信息都有一个模块号和子类型。我们不会在这里处理匹配服务。因为匹配服务的业务很少。我们可以直接用新闻名作为业务签名。
在业务分发器中,我们保存每一种方法签名和相应的方法处理器。
5.匹配服务收到http请求,通过参数分析获得相应的业务签名,并通过json反序列获得请求信息的参数。将信息分发给相应的业务处理器。代码如下: 一个完整的业务处理器,代码如下 (可见与游戏服非常相似):示例代码
启动匹配服务器(MatchStartup.java)
然后执行游戏服的单元测试