跨服数据交互原理

我们知道联网游戏,每个客户端是通过服务器交互数据的。比如各互联网大厂举办王者荣耀比赛,腾讯公司的所有参赛者通过“腾讯专有服务器”进行数据交换,网易公司的所有参赛者通过“网易专有服务器”进行数据交换。那么问题来了,腾讯的参赛者如何跟网易的参赛者比赛?

答案是有一个专门的服务器叫做“世界服务器”WorldServer,用来跟“腾讯专有服务器”和“网易专有服务器”进行数据交互。这个WorldServer可以部署在腾讯的机房或者网易的机房,比如部署腾讯机房的一台机器,IP为192.168.22.22,那么“腾讯专有服务器”和“网易专有服务器”都要连上192.168.22.22这台机器。

数据交互是这样的:

腾讯参赛者A --> 腾讯专有服务器 --> 世界服务器 --> 网易专有服务器 --> 世界服务器 

                                --> 腾讯专有服务器 --> 腾讯参赛者A

                                         --> 腾讯参赛者B

                                --> 网易专有服务器 --> 网易参赛者C

                                         --> 网易参赛者D

对应的代码大概是:

客户端 向 逻辑服务器1 请求: Clt2Logic.ReqXXX

逻辑服务器1 向 世界服务器 请求: Logic2World.ReqXXXWorld

世界服务器 向 逻辑服务器2 请求: World2Logic.ReqXXXLogic

逻辑服务器2 向 世界服务器 返回: Logic2World.RetXXXWorld

世界服务器 向 逻辑服务器1 返回: World2Logic.RetXXLogic

逻辑服务器1 向 客户端 请求: Logic2Clt.RetXXX

 

posted @ 2022-02-09 11:15  银龙背上的骑士  阅读(361)  评论(0)    收藏  举报