一种游戏服务器的切换方法和系统与流程

文档序号:12809811阅读:551来源:国知局
一种游戏服务器的切换方法和系统与流程

本发明涉及计算机技术领域,尤其涉及一种游戏服务器的切换方法和系统。



背景技术:

网络游戏是虚拟的世界,玩家在这个虚拟的世界中有自己的游戏身份,比如玩家的等级,声望,经验值等,所有的这些信息都是由大量的数据构成,并且玩家在成长,在变化,这些游戏数据就不断地随之更新。在分区分服的游戏架构中,不同的游戏数据保存在不同的游戏服务器中,要得到这些游戏数据,就需要启动游戏客户端,通过游戏客户端来登陆游戏服务器,为了得到存储到不同游戏服务器上的游戏数据,游戏客户端通常还需要切换到不同的游戏服务器上。

在各类移动游戏中,玩家使用游戏客户端连接游戏服务器进行游戏,然而在目前的大型多人在线角色扮演游戏(massivemultiplayeronlinerole-playinggame)中采用分区分服的架构设定和运营,一般以网络运营商或平台来划分大区,每个大区又包括多个具体的游戏小区。一个游戏小区通常由一台或多台游戏服务器组成,玩家会选择其中的某个大区的一个游戏小区登录进行游戏。通常mmorpg的各种玩法需要玩家在不同游戏地图跳转,而不同的游戏地图通常部署在游戏小区内不同的游戏服务器上,若玩家当前所在的游戏地图和目标游戏地图不在同一个游戏服务器时,需要在源游戏地图和目的游戏地图所分别部署的游戏服务器之间进行切换跳转。

业界最常用的跳转游戏服务器的方式是游戏客户端主动先断开与源游戏服务器的连接,然后再重新与目标游戏服务器创建新的连接,连接成功后再继续进行游戏,如图1所示,为现有技术中游戏客户端主动断开源游戏服务器连接并在目标游戏服务器创建新连接的系统架构示意图,当玩家选择跨游戏地图时,游戏客户端主动向源游戏服务器发起跳图请求,当目标地图所在的游戏服务器与玩家所处的不是同一游戏服务器,源游戏服务器会向目标游戏服务器发送跳转服务器的占位请求,当目标服务器占位成功后,返回占位响应给源游戏服务器,源游戏服务器收到占位响应后,将占位响应返回给游戏客户端,游戏客户端收到返回的占位响应之后获取到目标游戏服务器的地址,游戏客户端再主动断开与源游戏服务器的网络连接,然后与目标游戏服务器重新建立网络连接,继续进行游戏。

现有技术中,由于游戏客户端先断开与源游戏服务器的连接,然后再重新与目标游戏服务器进行连接,连接成功后再继续进行游戏,这不可避免的会存在玩家掉线的问题,并且由于网络状况的原因,特别是目前移动网络在信号差或者切换基站时,网络状态会很不稳定的情况,切换游戏服务器连接时会加大玩家掉线的时间。



技术实现要素:

本发明实施例提供了一种游戏服务器的切换方法和系统,用于解决游戏客户端切换到不同游戏服务器时产生的用户掉线问题,可以在用户无感知的情况下完成游戏服务器的切换。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种游戏服务器的切换方法,包括:

所述游戏服务器的切换方法应用于游戏服务器的切换系统,所述游戏服务器的切换系统包括:负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器;

其中,所述负载均衡器和游戏客户端之间建立有通信连接,所述负载均衡器和所述网络层接入子系统相连接,所述网络层接入子系统和网络层代理子系统相连接,所述网络层代理子系统和所述游戏逻辑子系统相连接,所述游戏逻辑子系统和角色登录管理服务器相连接,所述游戏逻辑子系统包括:第一游戏服务器和第二游戏服务器,所述第一游戏服务器通过所述网络层代理子系统、所述网络层接入子系统、所述负载均衡器和所述游戏客户端进行通信;

所述方法包括如下步骤:

所述第一游戏服务器根据所述游戏客户端发送的游戏数据获取请求确定在所述第一游戏服务器上没有保存所述游戏数据获取请求所请求的游戏数据,通过所述网络层代理子系统向所述网络层接入子系统发送路由切换请求消息;

所述网络层接入子系统根据所述路由切换请求消息建立所述网络层接入子系统和所述第二游戏服务器的通信连接,所述第二游戏服务器上保存有所述游戏数据获取请求所请求的游戏数据;

所述第一游戏服务器向所述角色登录管理服务器发送回写请求;

所述角色登录管理服务器接收到所述回写请求之后,根据所述回写请求向所述第二游戏服务器发送用户角色数据;

所述第二游戏服务器从所述角色登录管理服务器获取到所述用户角色数据之后,通过所述网络层代理子系统、所述网络层接入子系统、所述负载均衡器向所述游戏客户端发送所述游戏数据。

第二方面,本发明实施例还提供一种游戏服务器的切换系统,所述游戏服务器的切换系统包括:负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器;

其中,所述负载均衡器和游戏客户端之间建立有通信连接,所述负载均衡器和所述网络层接入子系统相连接,所述网络层接入子系统和网络层代理子系统相连接,所述网络层代理子系统和所述游戏逻辑子系统相连接,所述游戏逻辑子系统和角色登录管理服务器相连接,所述游戏逻辑子系统包括:第一游戏服务器和第二游戏服务器,所述第一游戏服务器通过所述网络层代理子系统、所述网络层接入子系统、所述负载均衡器和所述游戏客户端进行通信;

所述第一游戏服务器,用于根据所述游戏客户端发送的游戏数据获取请求确定在所述第一游戏服务器上没有保存所述游戏数据获取请求所请求的游戏数据,通过所述网络层代理子系统向所述网络层接入子系统发送路由切换请求消息;

所述网络层接入子系统,用于根据所述路由切换请求消息建立所述网络层接入子系统和所述第二游戏服务器的通信连接,所述第二游戏服务器上保存有所述游戏数据获取请求所请求的游戏数据;

所述第一游戏服务器,还用于向所述角色登录管理服务器发送回写请求;

所述角色登录管理服务器,用于接收到所述回写请求之后,根据所述回写请求向所述第二游戏服务器发送用户角色数据;

所述第二游戏服务器,用于从所述角色登录管理服务器获取到所述用户角色数据之后,通过所述网络层代理子系统、所述网络层接入子系统、所述负载均衡器向所述游戏客户端发送所述游戏数据。

从以上技术方案可以看出,本发明实施例具有以下优点:

在本发明实施例中,第一游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器和游戏客户端进行通信,游戏客户端向第一游戏服务器发送游戏数据获取请求,第一游戏服务器确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,通过网络层代理子系统向网络层接入子系统发送路由切换请求消息,网络层接入子系统根据路由切换请求消息建立网络层接入子系统和第二游戏服务器的通信连接,第一游戏服务器向角色登录管理服务器发送回写请求,角色登录管理服务器根据回写请求向第二游戏服务器发送用户角色数据,第二游戏服务器接收到角色登录管理服务器发送的用户角色数据之后,通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送游戏数据。本发明实施例中,游戏客户端和负载均衡器保持通信连接不变的情况下,第一游戏服务器通过网络层代理子系统可以触发网络层接入子系统完成与第二游戏服务器的连接建立,从而第二游戏服务器可以向游戏客户端提供第一游戏服务器上没有的游戏数据,使得游戏客户端可以在用户无感知的情况下切换到和第二游戏服务器的通信,解决现有技术中游戏客户端切换到不同游戏服务器时产生的用户掉线问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。

图1为现有技术中游戏客户端主动断开源游戏服务器连接并在目标游戏服务器创建新连接的系统架构示意图;

图2为本发明实施例提供的一种游戏服务器的切换方法的流程方框示意图;

图3为本发明实施例提供的游戏服务器的切换系统与游戏客户端通信的一种应用场景示意图;

图4为本发明实施例提供的游戏服务器的切换系统内各个网元与游戏客户端的交互流程示意图;

图5为本发明实施例提供的一种游戏服务器的切换系统的组成结构示意图;

图6为本发明实施例提供的游戏服务器的组成结构示意图。

具体实施方式

本发明实施例提供了一种游戏服务器的切换方法和系统,用于解决游戏客户端切换到不同游戏服务器时产生的用户掉线问题,可以在用户无感知的情况下完成游戏服务器的切换。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

本发明实施例提供的游戏服务器的切换方法具体可以应用于用户无感知的情况下完成对游戏服务器的切换,用于解决游戏客户端不掉线情况下的游戏数据获取问题。在本发明实施例提供的游戏服务器的切换方法中,涉及到负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器等系统网元。举例说明如下,游戏客户端是和游戏逻辑子系统进行游戏交互的终端,例如游戏客户端可以是lol端游和掌上英雄app,游戏服务器可以是lol服务器,负载均衡器可以和游戏客户端保持不中断的通信连接。

为了能解决现有技术中玩家切换游戏服务器连接时的掉线问题,本发明实施例中在游戏客户端进行游戏服务器之间进行切换跳转时,采用不断连接的方式,即游戏客户端和游戏服务器保持了原有的客户端/服务器(client/server,c/s)连接,本发明实施例采用了不断连接跳转游戏服务器的技术方案,对游戏客户端方完全是透明的无需做额外流程处理,在游戏服务器后台进行数据路由跳转,从而避免了玩家的掉线问题,改善玩家的游戏体验。

针对现有技术中分区分服的游戏架构存在的切换游戏服务器时游戏客户端的掉线问题,本发明实施例提供了游戏服务器的切换系统,本发明实施例提供的游戏服务器的切换系统中包括有负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器,游戏客户端和负载均衡器之间建立有通信连接,例如负载均衡器提供可访问的ip地址和端口号,客户端通过该ip地址和端口号和负载均衡器进行通信,负载均衡器连接有网络层接入子系统,网络层接入子系统中包括有至少一个网络层接入服务器,网络层接入子系统中的所有网络层接入服务器均可以向游戏客户端提供交互式应用服务,具体选择哪个网络层接入服务器,可以由负载均衡器来确定。本发明实施例中网络层接入子系统作为一个整体提供接入服务器,多个游戏客户端可以共享这些接入资源,网络层接入子系统的硬件环境软件部署可以通过批量部署的方式来完成,网络层接入子系统中的任何一个网络层接入服务器都可以向客户端来提供交互式应用服务。同样的,本发明实施例中网络层代理子系统中包括有至少一个网络层代理模块,每个网络层代理模块负责管理1个或者多个游戏服务器,例如第一游戏服务器和第二游戏服务器可以和由一个网络层代理模块管理,也可以分别由不同的网络层代理模块来管理,此处不做限定,其中每个网络层代理模块都可以和网络层接入子系统中的所有网络层接入服务器进行通信。

接下来从负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器之间的交互过程来详细说明本发明实施例提供的游戏服务器的切换方法,请参阅图1所示,本发明一个实施例提供的游戏服务器的切换方法,游戏服务器的切换方法应用于游戏服务器的切换系统,游戏服务器的切换系统包括:负载均衡器、网络层接入子系统、网络层代理子系统、游戏逻辑子系统、角色登录管理服务器;

其中,负载均衡器和游戏客户端之间建立有通信连接,负载均衡器和网络层接入子系统相连接,网络层接入子系统和网络层代理子系统相连接,网络层代理子系统和游戏逻辑子系统相连接,游戏逻辑子系统和角色登录管理服务器相连接,游戏逻辑子系统包括:第一游戏服务器和第二游戏服务器,第一游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器和游戏客户端进行通信;

图1中所示的游戏服务器的切换方法中,包括如下步骤:

201、第一游戏服务器根据游戏客户端发送的游戏数据获取请求确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,通过网络层代理子系统向网络层接入子系统发送路由切换请求消息。

在本发明实施例中,游戏逻辑子系统包括:第一游戏服务器和第二游戏服务器,不限定的是,游戏逻辑子系统中可以包括多个游戏服务器,此处所示的第一游戏服务器可以是和已经和游戏客户端建立有通信连接的源游戏服务器,为了便于说明,将第二游戏服务器作为目的游戏服务器。在第一游戏服务器和游戏客户端建立通信连接时,游戏客户端可以向第一游戏服务器发送游戏数据获取请求。例如用户使用游戏客户端与第一游戏服务器进行各种游戏交互,例如打怪升级、购买装备等。

第一游戏服务器从游戏客户端获取到游戏数据获取请求,根据游戏数据获取请求确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,在这种情况下说明第一游戏服务器无法完成向游戏客户端提供游戏服务,此处需要切换到游戏逻辑子系统中保存有游戏数据获取请求所请求的游戏数据的游戏服务器,例如在国战类移动游戏中,游戏客户端使用游戏地图1和第一游戏服务器进行交互,当游戏客户端需要切换到游戏地图2时,游戏客户端可以向第一游戏服务器发送游戏地图2的获取请求,此时第一游戏服务器中没有保存游戏地图2。

在第一游戏服务器没有保存游戏客户端需要的游戏数据时,第一游戏服务器可以触发游戏服务器的切换,第一游戏服务器向网络层代理子系统发送路由切换请求消息,该网络层代理子系统再将路由切换请求消息转发给网络层接入子系统,则网络层接入子系统接收到第一游戏服务器发送的路由切换请求消息,然后执行步骤202。

在本发明的一些实施例中,除了执行前述步骤之外,本发明实施例提供的游戏服务器的切换方法中,包括如下步骤:

a1、负载均衡器接收游戏客户端发送的游戏数据获取请求;

a2、负载均衡器将游戏数据获取请求发送给网络层接入子系统;

a3、网络层接入子系统接收到游戏数据获取请求之后,将游戏获取请求发送给网络层代理子系统;

a4、网络层代理子系统接收到游戏数据获取请求之后,将游戏获取请求发送给游戏逻辑子系统中的第一游戏服务器。

在本发明实施例中,游戏客户端保持和负载均衡器的连接不间断,游戏客户端发送的游戏数据获取请求通过如下路径的转发后到达第一游戏服务器:负载均衡器--网络层接入子系统--网络层代理子系统。游戏客户端可以和负载均衡器进行通信,游戏客户端需要使用交互式应用服务时,游戏客户端可以向负载均衡器发送交互式应用请求数据,则负载均衡器可以从游戏客户端获取到交互式应用请求数据,举例说明如下,在游戏场景下,用户可以通过游戏客户端玩网络游戏时,游戏客户端发送游戏请求数据给负载均衡器,该负载均衡器接收到用户的游戏请求数据。本发明实施例中负载均衡器可以安装在网络层接入子系统和外部网络之间,负载均衡器可以由于专门的设备完成服务器选择任务,独立于操作系统,整体性能很高,在实际应用中,负载均衡器还可以设置多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。

在本发明的一些实施例中,步骤201第一游戏服务器根据游戏客户端发送的游戏数据获取请求确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,包括:

b1、第一游戏服务器根据游戏客户端发送的游戏数据获取请求判断在第一游戏服务器上是否保存有游戏数据获取请求所请求的游戏数据;

b2、若游戏数据没有保存在第一游戏服务器上,第一游戏服务器确定在第一游戏服务器上没有保存游戏数据。

其中,第一游戏服务器接收到游戏客户端发送的游戏数据获取请求,然后第一游戏服务器可检查本地保存的所有游戏数据,查找是否存在游戏数据获取请求所请求的游戏数据,例如可以通过游戏数据的名称或者游戏数据的标识来查找,若查找不到游戏数据获取请求所请求的游戏数据,则确定在第一游戏服务器上没有保存游戏数据。

在本发明的另一些实施例中,步骤201第一游戏服务器根据游戏客户端发送的游戏数据获取请求确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据之后,本发明实施例提供的游戏服务器的切换方法中,包括如下步骤:

c1、第一游戏服务器通过网络层代理子系统向第二游戏服务器发送跳转占位请求消息;

c2、第二游戏服务器接收到跳转占位请求消息之后,通过网络层代理子系统向第一游戏服务器发送跳转占位成功消息;

c3、第一游戏服务器接收跳转占位成功消息。

其中,第一游戏服务器为了保证游戏客户端能够成功切换到第二游戏服务器,第一游戏服务器可以通过网络层代理子系统和第二游戏服务器进行交互,以确定第二游戏服务器是否可以向游戏客户端提供游戏数据,若第二游戏服务器可以提供游戏数据,则第二游戏服务器可以通过网络层代理子系统向第一游戏服务器发送跳转占位成功消息,第一游戏服务器接收到跳转占位成功消息,从而第一游戏服务器可以确定该第二游戏服务器可以向游戏客户端提供该游戏客户端所需要的游戏数据。

进一步的,在前述执行步骤c1至步骤c3的实现场景下,在本发明的另一些实施例中,步骤c3第一游戏服务器接收跳转占位成功消息之后,本发明实施例提供的游戏服务器的切换方法中,包括如下步骤:

d1、第一游戏服务器向网络层接入子系统发送切换通知消息;

d2、网络层接入子系统接收到切换通知消息之后,向负载均衡器转发切换通知消息;

d3、负载均衡器接收到切换通知消息之后,向游戏客户端转发切换通知消息,使得游戏客户端停止向第一游戏服务器发送角色操作请求。

在本发明实施例中,游戏客户端保持和负载均衡器的连接不间断,第一游戏服务器的切换通知消息通过如下路径的转发后到达游戏客户端:网络层代理子系统--网络层接入子系统--负载均衡器。游戏客户端可以和负载均衡器进行通信,负载均衡器接收到切换通知消息之后向游戏客户端转发,游戏客户端停止向第一游戏服务器发送角色操作请求,以避免游戏客户端继续与第一游戏服务器进行交互造成的操作失败。

202、网络层接入子系统根据路由切换请求消息建立网络层接入子系统和第二游戏服务器的通信连接,第二游戏服务器上保存有游戏数据获取请求所请求的游戏数据。

在本发明实施例中,由于第二游戏服务器上保存有游戏数据获取请求所请求的游戏数据,网络层接入子系统在第一游戏服务器的触发下建立网络层接入子系统和第二游戏服务器的通信连接,即网络层接入子系统实现路由从第一游戏服务器到第二游戏服务器的切换。需要说明的是,在游戏逻辑子系统中包括有多个游戏服务器,哪个游戏服务器上保存有游戏客户端需要的游戏数据,则网络层接入子系统就可以和该游戏服务器建立通信连接。

需要说明的是,在本发明的一些实施例中,步骤202网络层接入子系统根据路由切换请求消息建立网络层接入子系统和第二游戏服务器的通信连接之后,本发明实施例提供的游戏服务器的切换方法中,包括如下步骤:

e1、网络层接入子系统通过网络层代理子系统向第一游戏服务器发送路由切换成功消息;

e2、第一游戏服务器接收到路由切换成功消息之后,触发执行如下步骤:第一游戏服务器向角色登录管理服务器发送回写请求。

其中,网络层接入子系统建立网络层接入子系统和第二游戏服务器的通信连接,若该通信连接成功建立,则网络层接入子系统可以再通过网络层代理子系统向第一游戏服务器发送路由切换成功消息,第一游戏服务器接收到路由切换成功消息,第一游戏服务器可以确定网络层接入子系统和第二游戏服务器的通信连接已经建立完成,从而确定第二游戏服务器可以通过网络层接入子系统向游戏客户端提供游戏数据。不限定的是,在本发明的一些实施例中,也可以不执行步骤e1至e2,而是在步骤201执行之后,间隔一个预置的时间段,该时间段用于网络层接入子系统和第二游戏服务器建立通信连接,在该时间段完成后直接触发步骤203运行,具体实现方式取决于应用场景,此处不做限定。

203、第一游戏服务器向角色登录管理服务器发送回写请求。

在本发明实施例中,第一游戏服务器触发网络层接入子系统和第二游戏服务器建立通信连接之后,该第一游戏服务器就可以向角色登录管理服务器发送回写请求,其中,回写请求用于触发角色登录管理服务器对操作游戏客户端的用户角色进行用户角色数据的整理以及向第二游戏服务器转发。

在本发明的一些实施例中,第一游戏服务器在向角色登录管理服务器发送回写请求之前,该第一游戏服务器还可以整理本地的在线玩家列表,将发送游戏数据获取请求的用户角色从在线玩家列表中删除,从而清除用户角色数据之后就不再向该用户角色提供游戏数据,而是由游戏逻辑子系统中的第二游戏服务器继续向发送游戏数据获取请求的用户角色提供游戏数据。

204、角色登录管理服务器接收到回写请求之后,根据回写请求向第二游戏服务器发送用户角色数据。

在本发明实施例中,角色登录管理服务器负责与数据库的交互,拉取以及回写用户角色数据,保存在线玩家列表,角色登录管理服务器和游戏逻辑子系统中的每个游戏服务器相连接,角色登录管理服务器还可以实现转发消息、回写数据验证、登录唯一性验证,同时支持连接多个游戏服务器,并负责游戏服务器内部的消息中转。

205、第二游戏服务器从角色登录管理服务器获取到用户角色数据之后,通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送游戏数据。

在本发明实施例中,第二游戏服务器是游戏客户端需要切换到的目标游戏服务器,第二游戏服务器从角色登录管理服务器获取到用户角色数据之后,第二游戏服务器可以在本地恢复出用户角色数据,例如将用户角色添加到在线玩家列表中,然后第二游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送游戏数据,从而游戏客户端可以从第二游戏服务器获取到用户需要的游戏数据,举例说明,第一游戏服务器上指保存有游戏地图1,在用户无感知的情况下,游戏客户端向负载均衡器请求获取游戏地图2,该游戏客户端可以自动切换到与第二游戏服务器进行通信,从第二游戏服务器获取到游戏地图2。

在本发明的一些实施例中,步骤205中第二游戏服务器从角色登录管理服务器获取到用户角色数据之后,本发明实施例提供的游戏服务器的切换方法中,包括如下步骤:

f1、第二游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送切换游戏服务器成功消息。

其中,第二游戏服务器从角色登录管理服务器获取到用户角色数据之后,第二游戏服务器还可以向游戏客户端发送切换游戏服务器成功消息,则游戏客户端可以根据该切换游戏服务器成功消息确定该游戏客户端已经切换到第二游戏服务器,游戏客户端此时可以进行游戏场景的切换。

通过以上实施例对本发明实施例的描述可知,第一游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器和游戏客户端进行通信,游戏客户端向第一游戏服务器发送游戏数据获取请求,第一游戏服务器确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,通过网络层代理子系统向网络层接入子系统发送路由切换请求消息,网络层接入子系统根据路由切换请求消息建立网络层接入子系统和第二游戏服务器的通信连接,第一游戏服务器向角色登录管理服务器发送回写请求,角色登录管理服务器根据回写请求向第二游戏服务器发送用户角色数据,第二游戏服务器接收到角色登录管理服务器发送的用户角色数据之后,通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送游戏数据。本发明实施例中,游戏客户端和负载均衡器保持通信连接不变的情况下,第一游戏服务器通过网络层代理子系统可以触发网络层接入子系统完成与第二游戏服务器的连接建立,从而第二游戏服务器可以向游戏客户端提供第一游戏服务器上没有的游戏数据,使得游戏客户端可以在用户无感知的情况下切换到和第二游戏服务器的通信,解决现有技术中游戏客户端切换到不同游戏服务器时产生的用户掉线问题。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。

现有技术中,当玩家切换游戏地图时需要跳转游戏服务器,游戏客户端断掉原先的连接,并在目标游戏服务器上重新建立连接。如果游戏客户端在移动网络信号差或者在切换基站时,网络状态会很不稳定的情况下,切换游戏服务器连接时会大大增加了玩家掉线的时间,给玩家的游戏体验上带来很大的影响。现有技术中,整个切换地图跳转游戏服务器的过程,对游戏客户端是不透明的,需要游戏客户端配合发起,增加了客户端的开发复杂度。而本发明实施例中采用了不断连接跳转游戏服务器的技术方案,在切换游戏地图跳转游戏服务器时,对游戏客户端是透明的,游戏客户端的操作用户而言是无感知的,并且游戏客户端也不需要额外配合开发跳转流程,解决了现有技术的缺点。

举例说明如下,请参阅图2所示,为本发明实施例提供的一种游戏服务器的切换方法的流程方框示意图。在国战游戏中,通常玩家要通过本国边境地图传送到敌国进行对战活动,此时玩家点击非玩家控制角色(non-player-controlledcharacter,npc)进行国家地图跳转,如果目标国和本国地图部署在不同服务器上,需要进行切换游戏地图跳转游戏服务器。负载均衡器和网络层接入子系统相连接,网络层接入子系统中包括有m个网络层接入服务器,分别为网络层接入服务器1、…、网络层接入服务器m,网络层代理子系统中包括有s个网络层代理模块,分别为网络层代理模块1、…、网络层代理模块s,游戏逻辑子系统共包括有:游戏服务器1、游戏服务器2、…、游戏服务器n-1、游戏服务器n,n个游戏服务器和角色登录管理服务器相连接。

例如,一个游戏小区有多个网络层接入服务器,且每个网络层接入服务器设置为对等的,考虑到避免游戏客户端连接网络层接入服务器时需要知道各个网络层接入服务器地址端口等信息的细节,简化游戏客户端和接入服务器的连接交互流程,在网络层加了负载均衡器用来实现多网统一接入,并支持自动负载均衡。游戏客户端只需要连接统一对外的负载均衡器的互联网协议(internetprotocol,ip)和端口,便可被均衡分配到一台网络层接入服务器上。为了实现移动客户端不断连接跳转游戏服务器,需要游戏服务器内部直接进行路由切换,在网络层接入服务器和游戏服务器之前增加了网络层代理模块,游戏服务器通过传输控制协议(transmissioncontrolprotocol,tcp)连接游戏小区内的多个网络层,每个网络层代理模块负责管理1到n个游戏服务器。

接下来请参阅图3所示,为本发明实施例提供的游戏服务器的切换系统与游戏客户端通信的一种应用场景示意图一套实现多网统一接入,支持自动负载均衡的系统。切换游戏地图跳转游戏服务器的主要流程包括如下:

1)玩家在游戏客户端请求切换游戏地图。

2)源游戏服务器检查目标游戏地图是否保存在本服务器上。

3)如果目标游戏地图不在同一服务器,源游戏服务器向目标游戏服务器发起占位请求。

4)目标游戏服务器占位成功后,向源游戏服务器发送占位成功消息。

5)源游戏服务器向游戏客户端发送跳转服务器通知。

6)游戏客户端停止向源游戏服务器发送操作请求消息。

7)源游戏服务器通过源网络层代理模块透传通知网络层接入服务器向目标游戏服务器进行路由切换。

8)网络层接入服务器路由切换成功后,向源游戏服务器返回路由切换成功消息。

9)源游戏服务器清理玩家数据,并向角色登录管理服务器发送跳服回写请求。

10)角色登录管理服务器回写玩家数据,更新连接状态。

11)角色登录管理服务器将回写的玩家数据发送到目标游戏服务器。

12)目标游戏服务器收到回写的玩家数据后,在本服务器上恢复玩家数据

13)目标游戏服务器完成恢复玩家数据后,通知游戏客户端跳转游戏服务器成功,然后通知游戏客户端切换游戏地图消息,向游戏客户端发送更新后的游戏地图。

14)客户端收到切换游戏地图消息后,开始进行场景切换。

本发明实施例中切换游戏服务器时可以保持游戏客户端和负载均衡器的原连接,不需要断掉旧连接和重建新连接,对于玩家而言是无感知的,避免游戏客户端的掉线,以及受网络影响导致的长时间掉线问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图5所示,本发明实施例提供的一种游戏服务器的切换系统500,可以包括:负载均衡器501、网络层接入子系统502、网络层代理子系统503、游戏逻辑子系统504、角色登录管理服务器505,其中,

其中,所述负载均衡器501和游戏客户端之间建立有通信连接,所述负载均衡器501和所述网络层接入子系统502相连接,所述网络层接入子系统502和网络层代理子系统503相连接,所述网络层代理子系统503和所述游戏逻辑子系统504相连接,所述游戏逻辑子系统504和角色登录管理服务器505相连接,所述游戏逻辑子系统504包括:第一游戏服务器5041和第二游戏服务器5042,所述第一游戏服务器5041通过所述网络层代理子系统503、所述网络层接入子系统502、所述负载均衡器501和所述游戏客户端进行通信;

所述第一游戏服务器5041,用于根据所述游戏客户端发送的游戏数据获取请求确定在所述第一游戏服务器5041上没有保存所述游戏数据获取请求所请求的游戏数据,通过所述网络层代理子系统503向所述网络层接入子系统502发送路由切换请求消息;

所述网络层接入子系统502,用于根据所述路由切换请求消息建立所述网络层接入子系统502和所述第二游戏服务器5042的通信连接,所述第二游戏服务器5042上保存有所述游戏数据获取请求所请求的游戏数据;

所述第一游戏服务器5041,还用于向所述角色登录管理服务器505发送回写请求;

所述角色登录管理服务器505,用于接收到所述回写请求之后,根据所述回写请求向所述第二游戏服务器5042发送用户角色数据;

所述第二游戏服务器5042,用于从所述角色登录管理服务器505获取到所述用户角色数据之后,通过所述网络层代理子系统503、所述网络层接入子系统502、所述负载均衡器501向所述游戏客户端发送所述游戏数据。

在本发明的一些实施例中,所述负载均衡器501,用于接收游戏客户端发送的游戏数据获取请求;将所述游戏数据获取请求发送给所述网络层接入子系统502;

所述网络层接入子系统502,还用于接收到所述游戏数据获取请求之后,将所述游戏获取请求发送给所述网络层代理子系统503;

所述网络层代理子系统503,还用于接收到所述游戏数据获取请求之后,将所述游戏获取请求发送给所述游戏逻辑子系统504中的第一游戏服务器5041。

在本发明的一些实施例中,所述第一游戏服务器5041,具体用于根据所述游戏客户端发送的游戏数据获取请求判断在所述第一游戏服务器5041上是否保存有所述游戏数据获取请求所请求的游戏数据;若所述游戏数据没有保存在所述第一游戏服务器5041上,确定在所述第一游戏服务器5041上没有保存所述游戏数据。

在本发明的一些实施例中,所述第一游戏服务器5041,还用于根据所述游戏客户端发送的游戏数据获取请求确定在所述第一游戏服务器5041上没有保存所述游戏数据获取请求所请求的游戏数据之后,通过所述网络层代理子系统503向所述第二游戏服务器5042发送跳转占位请求消息;

所述第二游戏服务器5042,还用于接收到所述跳转占位请求消息之后,通过所述网络层代理子系统503向所述第一游戏服务器5041发送跳转占位成功消息;

所述第一游戏服务器5041,还用于接收所述跳转占位成功消息。

在本发明的一些实施例中,所述第一游戏服务器5041,还用于接收所述跳转占位成功消息之后,向所述网络层接入子系统502发送切换通知消息;

所述网络层接入子系统502,还用于接收到所述切换通知消息之后,向所述负载均衡器501转发所述切换通知消息;

所述负载均衡器501,还用于接收到所述切换通知消息之后,向所述游戏客户端转发所述切换通知消息,使得所述游戏客户端停止向所述第一游戏服务器5041发送角色操作请求。

在本发明的一些实施例中,所述网络层接入子系统502,还用于根据所述路由切换请求消息建立所述网络层接入子系统502和所述第二游戏服务器5042的通信连接之后,通过所述网络层代理子系统503向所述第一游戏服务器5041发送路由切换成功消息;

所述第一游戏服务器5041,还用于接收到所述路由切换成功消息之后,触发执行如下步骤:所述第一游戏服务器5041向所述角色登录管理服务器505发送回写请求。

在本发明的一些实施例中,所述第二游戏服务器5042,还用于通过所述网络层代理子系统503、所述网络层接入子系统502、所述负载均衡器501向所述游戏客户端发送切换游戏服务器成功消息。

通过以上对本发明实施例的描述可知,第一游戏服务器通过网络层代理子系统、网络层接入子系统、负载均衡器和游戏客户端进行通信,游戏客户端向第一游戏服务器发送游戏数据获取请求,第一游戏服务器确定在第一游戏服务器上没有保存游戏数据获取请求所请求的游戏数据,通过网络层代理子系统向网络层接入子系统发送路由切换请求消息,网络层接入子系统根据路由切换请求消息建立网络层接入子系统和第二游戏服务器的通信连接,第一游戏服务器向角色登录管理服务器发送回写请求,角色登录管理服务器根据回写请求向第二游戏服务器发送用户角色数据,第二游戏服务器接收到角色登录管理服务器发送的用户角色数据之后,通过网络层代理子系统、网络层接入子系统、负载均衡器向游戏客户端发送游戏数据。本发明实施例中,游戏客户端和负载均衡器保持通信连接不变的情况下,第一游戏服务器通过网络层代理子系统可以触发网络层接入子系统完成与第二游戏服务器的连接建立,从而第二游戏服务器可以向游戏客户端提供第一游戏服务器上没有的游戏数据,使得游戏客户端可以在用户无感知的情况下切换到和第二游戏服务器的通信,解决现有技术中游戏客户端切换到不同游戏服务器时产生的用户掉线问题。

图6是本发明实施例提供的一种游戏服务器结构示意图,该游戏服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。

游戏服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由游戏服务器所执行的切换流程步骤可以基于该图6所示的服务器结构。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1