手游服务器虚拟机搭建教程

2025-10-24 04:49:24

1、第一步:如今的手游世界,如果没搞个跨服赛事,都不好意思说它是一-个手游了。

说到跨服,就不得不说下匹配服了。比如一个跨服天梯赛事,需要满足不同服的玩家能

够同屏P K。为了能够把实力接近的玩家作为对手,我们需要一个独立的匹配服来收集

数据,然后进行房间分配。匹配服,也是跨服赛设计的基础。

典型的匹配服通信层我们可以采用http,也可以采用socket。本文将采用http作为游戏服

与匹配服的通信层。选择http方式,我们可以搭个tomcat服务,非常方便。当然,如果

不使用tomcat的话,我们也可以使用mina或者netty本身的http服务。

设计思路也非常简单,有点像游戏服的业务处理器。我们需要做到,对于不同的请求,

我们都绑定一个方法与之对应。而对于数据的编解码,由于匹配服的通信数据一般都比

较短,我们直接用json进行序列化即可。

下面,开始我们的编码。

手游服务器虚拟机搭建教程

2、第二步:搭建mina的http服务

在前面游戏后台设计中,我们已经看到如何使用mina搭建http服务了。

手游服务器虚拟机搭建教程

3、第三步:消息通信

在游戏服,我们发出一条http请求。匹配服为了将请求分发到对应的处理器,我们需要

为每一条消息作一个标记。 最简单的,可以使用请求消息的类名。所以,我们必须把业

务签名和参数都融合到url里面去。也就是说,一个有效的url可能是这样:

http://localhost:8899?service=MReqLadderApplyMessage&param= {" playerld":

0,"score' :0,"power":0}

为了能区别游戏服和匹配服的消息类型,我们匹配服的消息,都加一个M(Match)前

缀,那么请求协议就MReq,响应协议就是MRes了。

对于游戏服来说,发出的请求属于Message的子类,返回的消息也是Message的子类。

底层帮我们实现了消息的编解码。我们可以看下代码实现。

手游服务器虚拟机搭建教程

4、第四步:业务处理器

我们依然使用@Controller注解来标识一个模块处理器,使用@RequestMapper注解

来标记业务处理方法。不同的是,在游戏服我们每个消息的元信息都带有一个模块号和

子类型号。在匹配服,我们就不这里处理了。因为匹配服的业务比较少。我们直接用消

息类的名称作为业务签名即可。

在业务分发器,我们保存每一个方法签名, 与对应的方法处理器。

手游服务器虚拟机搭建教程

5、第五步:匹配服在收到一-个http请求,通过参数解析得到对应的业务签名,同时通过json反序列

化得到请求消息的参数。将消息分发到对应的业务处理器。代码如下:

一个完整的业务处理器,代码如下(可以看出, 跟游戏服是非常类似的) :

示例代码

启动匹配服服务器(MatchStartupjava)

再执行游戏服的单元测试

手游服务器虚拟机搭建教程

6、第六步:这样就完成了!!

手游服务器虚拟机搭建教程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢