数据处理方法、装置、介质及电子设备与流程

文档序号:17482120发布日期:2019-04-20 06:31阅读:174来源:国知局
数据处理方法、装置、介质及电子设备与流程

本发明涉及通信技术领域,具体而言,涉及一种数据处理方法、数据处理装置、存储介质及电子设备。



背景技术:

随着计算机通信技术的快速发展以及网络的普及,互联网用户越来越多。通过连接服务端,客户端可以获取服务端上的数据,并且与其他客户端进行交互。由于单个服务端能够承载的客户端数量有限,为了满足大量用户的需求,服务端通常会设置多个,但是客户端在多个服务端之间跳转时,需要反复连接服务端导致跳转速度过慢,影响用户体验。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明实施例的目的在于提供一种数据处理方法、数据处理装置、存储介质及电子设备,进而至少在一定程度上克服数据处理速度慢的问题。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明实施例的第一方面,提供了一种数据处理方法,包括:

响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号;

确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;

根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输;

响应于所述客户端切换至第二服务端,解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;

根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

在本发明的一种示例性实施例中,在响应客户端发送的连接请求与客户端建立连接之后,还包括:

向所述客户端发送状态控制数据,将所述客户端的连接状态更改为登录中。

在本发明的一种示例性实施例中,所述为所述客户端生成第一标识号之前,还包括:

验证所述客户端发送的认证信息;

在所述认证信息验证通过后,向所述客户端发送状态控制数据,以使所述客户端的连接状态更改为登录成功。

在本发明的一种示例性实施例中,确定所述客户端对应的第一服务端之后,还包括:

向所述第一服务端发送连接请求,并根据所述认证信息生成针对于所述第一服务端的虚拟认证信息;

将所述虚拟认证信息发送给所述第一服务端,以取得与所述第一服务端的连接。

在本发明的一种示例性实施例中,确定所述客户端对应的第一服务端之后,还包括:

接收所述第一服务端发送的状态控制数据,根据所述状态控制数据判断与所述第一服务端是否连接成功;

在所述状态控制数据包含连接成功的信息时,将所述客户端的所述连接状态更改为连接成功;

在所述状态控制数据不包含连接成功的信息时,将所述客户端的所述连接状态更改为连接失败。

在本发明的一种示例性实施例中,所述响应所述客户端切换至第二服务端,包括:

监测所述客户端的所述连接状态,在所述连接状态为连接失败时,确定所述客户端切换至第二服务端。

在本发明的一种示例性实施例中,所述根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输,包括:

接收到所述客户端发送给所述第一服务端的数据包时,根据所述第一对应关系将所述数据包中的第一标识号修改为所述第二标识号,将修改后的数据包发送给所述第一服务端;或

接收到所述第一服务端发送的数据包时,根据所述第一对应关系将所述数据包中的第二标识号修改为所述第一标识号,将修改后的数据包发送给所述客户端。

在本发明的一种示例性实施例中,所述根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输,包括:

接收到所述客户端发送给所述第二服务端的数据包时,根据所述第二对应关系将所述数据包中的第一标识号修改为第三标识号,将修改后的数据包发送给所述第二服务端;或

接收到所述第二服务端发送给所述客户端的数据包时,根据所述第二对应关系将所述数据包中的第三标识号修改为所述第一标识号,将修改后的数据包发送给所述客户端。

在本发明的一种示例性实施例中,所述确定所述客户端对应的第一服务端,包括:

根据所述第一对应关系或所述第二对应关系,计算与各服务端已对应的客户端的数量;

根据各服务端已对应的客户端的数量,从多个服务端中确定出所述所述客户端对应的第一服务端。

在本发明的一种示例性实施例中,在接收到多个所述第一服务端发送的数据包时,根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输包括:

根据所述第一对应关系,按照接收到所述数据包的顺序将所述数据包转发给对应的客户端。

根据本发明实施例的第二方面,提供了一种数据处理装置,包括:

标识生成单元,用于响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号;

对应关系建立第一单元,用于确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;

对应关系切换第二单元,用于响应所述客户端切换至第二服务端解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;

数据传输控制单元,用于根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输,并根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

根据本发明实施例的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的数据处理方法。

根据本发明实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的数据处理方法。

本发明实施例提供的技术方案可以包括以下有益效果:

在本发明的一些实施例所提供的技术方案中,一方面,通过响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号,进而确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;避免了客户端直接连接到服务器上,提高了服务器的安全性;并且通过第一标识号与第二标识号的对应关系能够完成客户端与相应服务端的交互;另一方面,避免了多个服务端之间进行跳转导致客户端掉线的问题;再一方面,响应所述客户端切换至第二服务端解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;省去了客户端切换服务端时需要重新连接服务端的操作,可以避免客户端对服务端之间的跳转的等待,提高用户体验;再一方面,根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输,并根据第二对应关系控制所述客户端与所述第二服务端之间的数据传输;可以提高数据传输的效率,并且降低了数据在服务端与客户端上发生阻塞的概率,提高服务端与客户端处理数据的速度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示意性示出了根据本发明实施例的数据处理方法的流程图;

图2示意性示出了根据本发明另一实施例的数据处理方法的流程图;

图3示意性示出了根据本发明另一实施例的数据处理方法的流程图;

图4示意性示出了根据本发明另一实施例的数据处理方法的流程图;

图5示意性示出了根据本发明另一实施例的数据处理方法的流程图;

图6示意性示出了根据本发明的实施例的数据处理方法的系统架构示意图;

图7示意性示出了根据本发明的实施例的数据处理方法的交互流程图;

图8示意性示出了根据本发明的实施例的数据处理方法的另一交互流程图;

图9示意性示出了根据本发明实施例的数据处理装置的框图;

图10示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

目前在游戏软件中,例如沙盒游戏,可以通过设置多个相同配置的服务大区,玩家可以预先选择进行游戏的大区,但是单个大区所能提供的活动空间以及承载的玩家人数有限,容易出现个别大区负载过高的问题,影响游戏体验;如果不区分游戏大区,那么每个游戏场景可以由一组服务端共同支撑,玩家可以被动态分配到某个服务端,但是由于玩家在服务器之间跳转时需要重连另一个服务器,跳转速度慢,影响游戏体验。

基于此,本发明首先提出一种数据处理方法。如图1所示,该数据处理方法可以包括步骤s110、步骤s120、步骤s130、步骤s140以及步骤s150。其中:

步骤s110.响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号;

步骤s120.确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;

步骤s130.根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输;

步骤s140.响应于所述客户端切换至第二服务端,解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;

步骤s150.根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

根据本示例性实施方式中的数据处理方法,一方面,通过响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号,进而确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;避免了客户端直接连接到服务器上,提高了服务端的安全性;并且通过第一标识号与第二标识号的对应关系能够完成客户端与相应服务端的交互;另一方面,降低了客户端发生掉线的风险;再一方面,响应所述客户端切换至第二服务端解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;省去了客户端切换服务端时需要重新连接服务端的操作,可以避免客户端对服务端之间的跳转的等待,提高用户体验;再一方面,根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输,或者根据第二对应关系控制所述客户端与所述第二服务端之间的数据传输;可以提高数据传输的效率,并且降低了数据在服务端与客户端上发生阻塞的概率,提高服务端与客户端处理数据的速度。

下面,将结合图1至图8对本示例实施方式中的数据处理方法的各个步骤进行更加详细的说明。

在本示例性实施方式中,提出的数据处理方法的执行主体可以是虚拟服务端,例如云服务器,虚拟主机等等。

参考图1,在步骤s110中,响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号。

本示例性实施方式中,客户端可以通过向上述虚拟服务端发送连接请求从而与上述虚拟服务端建立连接。该连接请求可以包括该客户端的信息,例如客户端的网络互连协议地址(internetprotocol,简称ip地址)、密钥信息等等;该连接请求还可以包括该客户端需要连接的服务端的信息,例如服务端的标识号、服务端的类型等等;该连接请求还可以包括客户端的其他信息,例如客户端通信端口等等;本示例实施方式对此不做特殊限定。

在所述虚拟服务端接收到所述客户端的连接请求后,可以响应该连接请求与该客户端建立连接。在虚拟服务端与客户端建立连接之后,虚拟服务端可以与客户端进行通信,例如数据交换、数据传输等等。在该虚拟服务端与该客户端建立连接后,该虚拟服务端可以为该客户端分配一通信端口,或者ip地址。进一步的该虚拟服务端可以为该客户端生成第一标识号。第一标识号可以用于唯一标识连接在该虚拟服务端的客户端,使得该虚拟服务端可以区分每个客户端。该第一标识号可以包含各种信息,例如数字、字母、符号,或其组合等等,本示例实施方式对此不做特殊限定。

在步骤s120中,确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系。

本示例性实施方式中,在所述客户端与所述虚拟服务端建立连接后,所述虚拟服务端可以为所述客户端确定第一服务端。其中,第一服务端可以包括各种能够提供计算服务的设备,或者虚拟设备。在本示例实施方式中,可以有多个服务端;该服务端可以根据指令完成操作,从而实现相应的功能,例如,发送数据包、统计数据等等;并且,该服务端可以保存各种数据,例如用户信息、游戏场景等等;此外,该服务端还可以包括数据库,或者数据库连接,从而在客户端需要数据时,能够将数据库中的数据提供给客户端;本示例实施方式对此不做特殊限定。所述第一服务端可以是上述服务端其中的一个,或者其中多个的组合。进而可以将服务端进行组合,划分不同的服务端组;举例而言,可以根据服务端实现的功能为服务端划分不同的服务端组,例如数据计算服务端组、数据传输服务端组;或者也可以根据其他方式将多个服务端进行组合,例如服务端组可以通过不同的游戏场景进行划分等等。

为客户端确定一服务端可以根据客户端的连接请求中包含的服务端的信息,为客户端确定其对应的第一服务端。也可以通过其他方式为客户端确定第一服务端,例如通过客户端的配置信息确定其对应的第一服务端、在空闲的服务端中确定随机确定一服务端作为其对应的第一服务端等等。

确定了所述客户端对应的第一服务端后,该第一服务端可以为客户端生成第二标识号。由于一个服务端可以同时与多个客户端进行数据交互,因此与上述第一标识类似,该第二标识号可以是第一服务端用于区分与它进行数据交互的各个客户端的标识信息。通过该标识信息,第一服务端可以与该客户端建立唯一的通信接口,进而通过该通信接口进行数据交互。

根据第一服务端为客户端生成的第二标识号可以建立第一标识号与第二标识号的第一对应关系。可以将第一标识号与第二标识号的对应关系进行保存,并且可以将该对应关系保存为各种格式,例如数据库表、数组等等,本示例实施方式对此不做特殊限定。

在步骤s130中,根据第一对应关系控制客户端与第一服务端之间的数据传输。

本示例性实施方式中,根据第一对应关系,所述客户端可以与第一服务端进行数据交互。详细而言,在该客户端与该虚拟服务器建立连接后,该客户端可以发送数据至该虚拟服务器,该虚拟服务器可以根据其为该客户端生成的第一标识号查找到该第一标识号对应的第二标识号,并将该客户端发送的数据转发给生成该第二标识号的第一服务端。或者,在该虚拟服务器接收到该第一服务端发送的数据时,可以根据该数据中包含的其为客户端生成的第二标识号,查询该第二标识号对应的第一标识号,从而将该数据转发给对应的客户端。

在步骤s140中,响应于所述客户端切换至第二服务端,解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系。

本示例性实施方式中,可以响应于所述客户端切换至第二服务端,解除所述第一对应关系。其中,所述客户端可以在与第一服务端进行数据交互失败时,主动发送切换第二服务端的请求,因此所述虚拟服务端可以响应该请求。此外,所述虚拟服务端也可以主动将该客户端切换至第二服务端;举例而言,虚拟服务端可以在无法与第一服务端取得连接时,主动将该客户端对应的服务端切换为第二服务端;再例如第一服务端承载过大时,该虚拟服务端可以将该客户端对应的服务端切换为第二服务端;当然,如果虚拟服务端客户端仍然无法取得与第二服务端的连接,那么该客户还可以切换至第三服务端、第四服务端等。

在该客户端切换第二服务端时,可以解除所述第一对应关系。由于第一对应关系中的第二标识号是由第一服务端为该客户端生成的,因此在该客户端切换服务端时,可以将第一对应关系解除。同样地,根据切换后的第二服务端为该客户端生成的第三标识号,可以建立第三标识号与第一标识号的对应关系,该对应关系可以为第二对应关系。因此,可以直接将第一对应关系删除,重新建立第二对应关系;或者将第一对应关系中的第二标识号更改为第三标识号,从而生成第二对应关系。

在步骤s150中,可以根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

本示例性实施方式中,根据第二对应关系,所述客户端可以与第二服务端进行数据交互。详细而言,确定该客户端对应的第二服务端后,该客户端可以发送数据至虚拟服务器,该虚拟服务器可以根据第二对应关系,查找到第一标识号对应的第三标识号,并将该客户端发送的数据转发给生成该第三标识号的第二服务端。或者,在该虚拟服务器接收到该第二服务端发送的数据时,可以根据该数据中包含的其为客户端生成的第三标识号,查询该第三标识号对应的第一标识号,从而将该数据转发给对应的客户端。

此外,在第一服务端与客户端或者第二服务端与客户端的数据传输过程中,所述虚拟服务器接收到客户端或者服务端发送的数据后,还可以对该数据进行处理,例如打包、丢包等等。举例而言,如果客户端发送的数据中包含所述第一标识号,那么所述虚拟服务器可以根据第一对应关系或者第二对应关系将该第一标识号更改为第二标识号或者第三标识号;如果服务端发送的数据中包含所述第二标识号,那么虚拟服务器可以根据第一对应关系将该第二标识号更改为第一标识号等等。

为了更清楚地知道客户端与虚拟服务端、第一服务端、第二服务端之间的交互状态,例如客户端是否连接上虚拟服务端等信息,本示例性实施方式在响应客户端发送的连接请求与客户端建立连接之后,还可以向所述客户端发送状态控制数据,将所述客户端的连接状态更改为登录中。

本示例实施方式中,所述状态控制数据可以包括客户端的连接状态,或者客户端与服务端的交互信息,例如状态控制数据可以是“已连接到第一服务端”等等;也可以包括客户端的性能参数,例如数据传输速率等等;或者还可以包括计算机指令、代码,从而使该状态控制数据被执行时实现某种功能;当然,状态控制数据也可以包括其他数据,例如客户端的使用状态、自定义数据等等;本示例实施方式对此不做限定。

在客户端与所述虚拟服务端建立连接后,该虚拟服务端可以向该客户端发送状态控制数据,以使客户端确定已连接上虚拟服务端。客户端可以在接收到虚拟服务端发送的状态控制数据后,根据状态控制数据将连接状态更改为登录中;客户端也可以将更改连接状态的权限分配给与其连接的虚拟服务端或者其他服务端,从而虚拟服务端可以利用状态控制数据将客户端的连接状态更改为登录中。

由于数据传输时为了防止数据泄露、数据篡改等不安全的问题的发生,因此需要对客户端进行认证。进一步地,为所示客户端生成第一标识号之前,还可以包括步骤s201和步骤s202,如图2所示。其中:

步骤s201.验证所述客户端发送的认证信息;

步骤s202.在所述认证信息验证通过后,向所述客户端发送状态控制数据,以使所述客户端的连接状态更改为登录成功。

本示例实施方式中,在步骤s201中,可以验证所述客户端发送的认证信息。其中,所述认证信息可以包括客户端的账户信息,例如用户的账号、密码信息;也可以包括密钥信息、加密的信息;当然,根据实际验证方式的需求,该认证信息也可以包括其他信息,例如用户的识别号、客户端的刷新速率、预先设定的信息等;本示例实施方式对此不做限定。

对客户端的认证信息进行验证的过程可以通过各种认证方式来完成,例如利用jsonwebtoken认证协议(简称jwt)的方式进行认证、利用oauth认证协议进行认证等等。或者,也可以通过其他认证方式来完成客户端发生的认证信息的验证,举例而言,可以自定义一些数据作为预设的数据,验证认证信息中是否包含该预设的数据,如果认证信息中包含该预设的数据可以确定该客户端验证通过,如果认证信息中不包含预设的数据则可以确定该客户端验证失败等等。

在步骤s202中,如果客户端发送的认证信息验证通过,可以向客户端发送状态控制数据,以使客户端的连接状态更改为登录成功。客户端在接收到该状态控制数据时,可以对该状态控制数据进行解析,判断该状态控制数据中是否包括登录成功的信息,如果包含登录成功的信息那么可以变更连接状态为登录成功。详细而言,可以预先约定一标识码用来标识登录成功,那么可以在该状态控制信息中查找是否包括该标识码,如果包含标识码那么可以确定将连接状态更改为登录成功。

更进一步地,在虚拟服务端接收到客户端发送的认证信息时,可以对该认证信息进行保存。从而在确定所述客户端对应的第一服务端之后还可以包括步骤s301和步骤s302,如图3所示,其中:

步骤s301.向所述第一服务端发送连接请求,并根据所述认证信息生成针对于所述第一服务端的虚拟认证信息;

步骤s302.将所述虚拟认证信息发送给所述第一服务端,以取得与所述第一服务端的连接。

参考图3,在本示例实施方式中,在步骤s301中,可以根据客户端对应的第一服务端向第一服务端发送连接请求。其中,该连接请求可以包括客户端的连接请求,或者虚拟服务端的通信端口信息;当然该连接请求也可以包括其他信息,例如虚拟服务端的标识信息、密钥信息等等。

根据客户端发送的认证信息生成针对于所述第一服务端的虚拟认证信息。其中,虚拟认证信息可以包括客户端对应的用户信息,例如用户的账号、密码信息等等;也可以包括客户端的其他信息,例如客户端前端数据的更新速率等。根据虚拟服务端与第一服务端之间约定的认证方式,该虚拟认证信息也可以包括其他信息,例如预设的数据、自定义的数据、密钥信息等等。

在步骤s302中,虚拟服务端可以将上述虚拟认证信息发送给第一服务端。第一服务端可以通过与虚拟服务端约定好的认证方式对该虚拟认证信息进行验证。举例而言,虚拟认证信息中可以包括用户的标识信息,第一服务端在接收到该虚拟认证信息后,可以在授权用户的信息中查询是否存在该标识信息,如果存在那么该虚拟认证信息验证通过,如果不存在那么该虚拟认证信息验证失败。在该虚拟验证信息验证通过时,第一服务端可以与虚拟服务端建立连接。举例来说,第一服务端可以为该虚拟服务端生成标识信息,并且可以为该虚拟服务端分配通信端口,利用该通信端口第一服务端可以与虚拟服务端进行数据交互。

更进一步地,建立所述第三标识号与所述第一标识号的第二对应关系之后,还可以包括步骤s401至步骤s403,如图4所示。其中:

步骤s401.接收所述第二服务端发送的状态控制数据,根据所述状态控制数据判断与所述第二服务端是否连接成功;

步骤s402.在所述状态控制数据包含连接成功的信息时,将所述客户端的所述连接状态更改为连接成功;

步骤s403.在所述状态控制数据不包含连接成功的信息时,将所述客户端的所述连接状态更改为连接失败。

参考图4,在本示例性实施方式中,步骤s401可以在接收到第二服务端发送的状态控制数据后,根据该状态控制数据判断该虚拟服务端是否与第二服务端连接成功。详细而言,虚拟服务端可以接收第一服务端发送的状态控制数据,从而根据该状态控制数据判断与所述第一服务端是否连接成功;可以判断该状态控制数据中是否包含连接成功的标识信息、或者其他能够表示连接成功的信息。

在步骤s402中,如果第一服务端发送的状态控制数据包含连接成功的信息,将客户端的连接状态更改为连接成功。其中,连接成功的信息可以包括各种类型的信息,例如数字、字母、文字、符合或其组合信息等。详细而言,可以预先规定一标识,例如100、“连接成功”等,将该标识作为连接成功的标识;如果状态控制数据中包含该标识那么可以确定该状态控制数据中包含连接成功的信息;当然,也可以通过其他方式判断该状态控制数据中是否包含连接成功的信息,例如判断该状态控制数据中是否包含特定密钥信息等。确定该状态控制数据中包含连接成功的信息时,可以将客户端的连接状态更改为连接成功。详细来说,虚拟服务端确定与第一服务端连接成功时,可以向客户端发送状态控制数据,从而使得客户端的连接状态变更为连接成功;也可以取得更改客户端连接状态的权限,直接对客户端的连接状态进行更改;当然,根据实际情况,也可以以其他方式使得客户端的连接状态更改为连接成功,例如向客户端发送指令等。

同样地,在步骤s403中,如果状态控制数据中不包含连接成功的信息时,即,虚拟服务端与第一服务端的连接失败,那么可以将客户端的连接状态更改为连接失败。

进一步地,可以监测所述客户端的所述连接状态,在所述连接状态为连接失败时,确定响应所述客户端切换至另一个服务端。详细而言,虚拟服务端可以监测客户端的连接状态,如果监测到客户端的连接状态为连接失败时,虚拟服务端可以与另一个服务端进行连接。虚拟服务端与另一个服务端进行连接,可以通过执行步骤s301、步骤s302,从而取得与另一个服务端的连接。在取得另一个服务端的连接后,可以将取得连接的服务端作为第二服务端,将客户端对应的第一服务端切换至该第二服务端。

在本示例性实施方式中,在建立所述第一标识号与所述第二标识号的第一对应关系之后,还可以记录所述客户端与所述第一服务端的映射关系;进而根据所述映射关系进行所述客户端与所述第一服务端的数据传输。在所述虚拟服务端与该第一服务端建立连接后,可以记录所述客户端与所述第一服务端的映射关系。当然,如果第一服务端与虚拟服务端建立连接失败,那么该虚拟服务端可以响应客户端切换至第二服务端,在该客户端对应的服务端从第一服务端切换为第二服务端时,可以记录客户端与该第二服务端的对应关系,该客户端与第二服务端的对应关系可以是第二映射关系。

进而,第一服务端与所述客户端可以根据该映射关系进行数据传输。并且,如果该客户端对应的服务端切换至第二服务端时,也可以根据该客户端与第二服务端的第二映射关系,进行第二服务端与客户端之间的数据传输。

优选地,本示例性实施方式中,根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输,可以在接收到所述第一服务端发送的数据包时,根据所述第一对应关系将所述数据包中的第二标识号修改为所述第一标识号,将修改后的数据包发送给所述客户端。由于第一服务端为客户端生成的第二标识号可以被虚拟服务端接收,并且在虚拟服务端中保存;因此虚拟服务端在接收在第一服务端发送的数据包时,可以将该数据包中的第二标识号更改为第一标识号,并且将修改后的数据包发送给客户端。

同样的,接收到客户端发送给第一服务端的数据包时,可以根据第一对应关系将数据包中的第一标识号修改为第二标识号,将修改后的数据包发送给第一服务端;或者,根据第二对应关系控制客户端与第二服务端之间的数据传输时,可以在接收到客户端发送给第二服务端的数据包时,根据第二对应关系将数据包中的第一标识号修改为第三标识号,将修改后的数据包发送给所述第二服务端。其中,客户端可以与虚拟服务端建立连接,并且接收虚拟服务端生成的第一标识号,因此客户端可以根据第一标识号发送数据包。在客户端根据第一标识号发送数据包时,虚拟服务端接收到该数据包之后,可以根据第一对应关系将数据包中的第一标识号修改为第二标识号。第二标识号是第一服务端为客户端生成的,因此修改后的数据包可以成功的发送给第一服务端。同样的,如果该客户端切换了服务端,那么根据第二对应关系将数据包中的第一标识号修改为第三标识号,发送给第二服务端。然而,如果该客户端多次切换服务端,也可以根据第三服务端、第四服务端……为该客户端生成的第四标识号、第五标识号……修改数据包中的第一标识号,从而保证数据包发送到正确的服务端上。

优选地,本示例性实施方式中,确定所述客户端对应的第一服务端可以包括步骤s501和步骤s502,如图5所示。其中:

步骤s501.根据所述第一对应关系或所述第二对应关系,计算与各服务端已对应的客户端的数量;

步骤s502.根据各服务端上已对应的客户端的数量,从多个服务端中确定出所述客户端对应的第一服务端。

在步骤s501中,可以根据每个服务端生成的第二标识号,以及第二标识号对应的第一对应关系计算每个服务端上已经建立对应关系的客户端的数量。其中,该服务端可以包括第一服务端,或者第二服务端;并且还可以包括没有对应的客户端的服务端,即该服务端可以是没有被确定为第一服务端或第二服务端的其他服务端。同样地,根据每个服务端生成的第三标识号,以及第三标识号对应的第二对应关系计算每个服务端上的第二对应关系的数量;从而获得每个服务端上第一对应关系与第二对应关系的数量之和,该数量之和可以作为服务端上已经对应的客户端的数量。例如,根据第一对应关系确定服务端a对应的客户端的数量为5,根据第二对应关系确定服务端a对应的客户端的数量为6,即,该服务端a是5个客户端对应的第一服务端,并且该服务端a还是6个客户端对应的第二服务端,因此该服务端a对应的客户端的数量为11。

在步骤s502中,确定了各服务端上已对应的客户端的数量之后,在需要确定某一客户端对应的第一服务端时,可以确定将已对应的客户端数量最多的服务端作为该客户端对应的第一服务端,或者将数量最少的服务端作为该客户端对应的第一服务端。举例而言,可以根据客户端的需求选择已经连接的客户端数量最多的服务端作为第一服务端,或者已经连接的客户端数量最少的服务端作为第一服务端,例如多人对战类型的游戏需要让游戏服务端人员满足数量要求从而开始游戏,因此优先选择客户端最多的游戏服务端。

在本示例实施方式中,在接收到多个所述第一服务端发送的数据包时,可以根据所述第一对应关系以及接收到所述数据包的顺序将所述数据包转发给对应的客户端。详细而言,在虚拟服务端接收到多个第一服务端发送的数据包时,虚拟服务端可以记录接收到将这些数据包的顺序;在将这些数据包转发给对应的客户端,虚拟服务端可以按照记录的顺序将这些数据包进行转发。

下面,以游戏客户端为例,参考图6至图8,说明客户端、虚拟服务端、服务端之间的连接关系以及数据处理过程。首先,如图6所示,客户端610可以向虚拟服务端620发送连接请求,虚拟服务端中的会话管理模块621可以处理客户端的连接请求,从而与客户端建立连接。虚拟服务端与客户端建立连接的过程可以包括步骤s701和步骤s702,如图7所示。步骤s701中,客户端向虚拟服务端发送连接请求,虚拟服务端中的会话管理模块可以处理客户端的连接请求,然后执行步骤s702与该客户端建立连接。在虚拟服务端620与客户端610建立连接之后,客户端可以向虚拟服务端发送认证信息,如步骤s703中所示。该认证信息可以有虚拟服务端的消息处理模块进行处理,如步骤s704。在步骤s704中,消息处理模块可以将接收到的认证信息发送至状态管理模块。状态管理模块可以执行步骤s705,解析认证信息,对客户端进行认证。

在虚拟服务端对客户端进行认证之后,虚拟服务端可以与游戏服务端建立连接。虚拟服务端620与游戏服务端630建立连接可以包括步骤s706。在步骤s706中,状态管理模块可以向服务端发送连接请求,进而与服务端进行连接。在进行连接后,如果虚拟服务端接收到游戏服务端返回的连接结果,那么虚拟服务端可以确定已经成功建立与服务端的连接。虚拟服务端确定与游戏服务端建立连接之后,可以向服务端进行认证,虚拟服务端与服务端进行认证的过程可以包括步骤s707以及步骤s708。在步骤s707中,状态管理模块在对客户端的认证信息进行解析之后,可以对该认证信息进行数据处理,例如删除多余的数据、删除第一标识号等,然后将处理后的认证信息发送给服务端,由服务端进行认证,在游戏服务端认证之后,可以执行步骤s708。在步骤s708中,游戏服务端可以返回认证结果至状态管理模块,以使状态管理模块确定是否认证成功。在取得游戏服务端的认证之后,状态管理模块还可以向客户端发送状态控制数据,该状态控制数据中可以包含认证状态,即,向客户端返回认证状态,以使客户端确定已与游戏服务端建立连接。此时,客户端610通过虚拟服务端620间接地与游戏服务端630建立了连接,并且可以向服务端发送游戏数据。

在客户端确定已经与游戏服务端建立了连接之后,客户端可以向游戏服务端发送数据,并接收游戏服务端发来的数据,客户端610与游戏服务端630之间进行数据传输可以包括步骤s709至步骤s714,如图7所示。在步骤s709中,客户端可以向游戏服务端发送数据包,该数据包由虚拟服务端的消息处理模块接收到之后,可以执行步骤s710,处理客户端数据包,例如将客户端数据包中的第一标识号进行修改等。然后,执行步骤s711,将处理后的客户端数据包可以转发给对应的游戏服务端。在游戏服务端接收到客户端发送的数据包时,可以向客户端返回数据,即,执行步骤s712,返回数据包给客户端。同样的,游戏服务端返回的数据包可以由虚拟服务端接收。虚拟服务端接收到客户端发送的数据包之后,消息处理模块可以对该数据包进行处理,如步骤s713所示。在步骤s713中,消息处理模块可以对服务端数据包进行数据处理,例如对数据包中的第二标识号进行修改等。然后,在步骤s714,虚拟服务端将服务端数据包返回给客户端,客户端获取到游戏服务端的数据时,可以进行各种游戏操作。

客户端切换至另外一个服务端的过程可以包括步骤s801至步骤s806,如图8所示。客户端与游戏服务端a可以进行数据传输,如果客户端失去了与游戏服务端a的连接,或者游戏服务端a连接了大量的客户端,为了不影响客户端的数据获取,客户端需要切换至另一个游戏服务端b。在步骤s801中,状态管理模块可以将与游戏服务端a的连接状态进行切换,例如将连接状态该为“断开”。然后,执行步骤s802,关闭连接,可以通过将与a的连接端口关闭,与a断开连接。在步骤s803中,向游戏服务端b发送连接请求,进而与b建立连接。游戏服务端b在接收到连接请求后,可以与虚拟服务端进行连接,进而在步骤s804中,返回连接结果。

在虚拟服务端与游戏服务端b连接成功后,虚拟服务端可以将客户端的认证信息发送给b,如步骤s805。在步骤s805中,将客户端的认证信息进行处理之后,可以发送给游戏服务端b,以取得游戏服务端b的认证。在步骤s806中,游戏服务端b认证之后,可以返回认证状态,如果认证成功,客户端可以与游戏服务端b开始数据传输。

以下介绍本发明的装置实施例,可以用于执行本发明上述的数据处理方法。该数据处理装置900可以包括:

标识生成单元910,用于响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号;

对应关系建立单元920,用于确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;

传输控制第一单元930,用于根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输;

对应关系切换单元940,用于响应所述客户端切换至第二服务端解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;

传输控制第二单元950,用于根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

由于本发明的示例实施例的数据处理装置的各个功能模块与上述数据处理方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的数据处理的实施例。

下面参考图10,其示出了适于用来实现本发明实施例的电子设备的计算机系统1000的结构示意图。图10示出的电子设备的计算机系统1000仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图10所示,计算机系统1000包括中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。在ram1003中,还存储有系统操作所需的各种程序和数据。cpu1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。

以下部件连接至i/o接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(cpu)1001执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的数据处理方法。

例如,所述的电子设备可以实现如图1中所示的:步骤s110.响应于客户端发送的连接请求与所述客户端建立连接,并为所述客户端生成第一标识号;步骤s120.确定所述客户端对应的第一服务端,根据所述第一服务端为所述客户端生成的第二标识号建立所述第一标识号与所述第二标识号的第一对应关系;步骤s130.根据所述第一对应关系控制所述客户端与所述第一服务端之间的数据传输;步骤s140.响应于所述客户端切换至第二服务端,解除所述第一对应关系,并根据切换后的第二服务端为所述客户端生成的第三标识号,建立所述第三标识号与所述第一标识号的第二对应关系;步骤s150.根据所述第二对应关系控制所述客户端与所述第二服务端之间的数据传输。

又如,所述的电子设备可以实现如图2所示的各个步骤。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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