跨服数据交互原理
我们知道联网游戏,每个客户端是通过服务器交互数据的。比如各互联网大厂举办王者荣耀比赛,腾讯公司的所有参赛者通过“腾讯专有服务器”进行数据交换,网易公司的所有参赛者通过“网易专有服务器”进行数据交换。那么问题来了,腾讯的参赛者如何跟网易的参赛者比赛?
答案是有一个专门的服务器叫做“世界服务器”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
浙公网安备 33010602011771号