一种游戏服务器分配方法、系统及存储介质与流程

文档序号:33701938发布日期:2023-03-31 19:59阅读:44来源:国知局
一种游戏服务器分配方法、系统及存储介质与流程

1.本技术涉及云游戏技术领域,尤其是涉及一种游戏服务器分配方法、系统及存储介质。


背景技术:

2.云游戏是指以云计算为基础的游戏方式,在云游戏的运行模式下,云游戏的数据处理和计算均在云游戏服务器中完成。因此,需要在客户端登录时为客户端分配合适的云游戏服务器。
3.目前,云游戏服务器的分配算法大多数的实现方式都是客户端请求分配对应的云游戏服务器,然后为其分配客户端请求的云游戏服务器,但是,一些情况下,客户端请求的云游戏服务器当前与其他客户端处于连接状态,也即该客户端请求分配的云游戏服务器当前处于被占用状态,因此,需要等待其他客户端使用完成后,且该云游戏服务器重新启动后,再与该客户端建立连接关系,从而导致客户端需要等待的时间较长,进而导致用户的体验较差。


技术实现要素:

4.为了解决以上技术问题,本技术提供一种游戏服务器分配方法、系统及存储介质。
5.第一方面,本技术提供一种游戏服务器分配方法,应用于游戏服务器分配系统,所述游戏服务器分配系统包括:至少一个paas服务器、至少一个agent服务器、至少一个云游戏服务器gs以及至少一个客户端,其中,所述paas服务器分别与所述至少一个agent服务器进行以及所述至少一个客户端进行信息交互,所述至少一个gs还与所述至少一个客户端进行信息交互,所述方法由任一agent服务器执行,包括:接收目标paas服务器发送的gs的分配请求,所述gs的分配请求是检测到目标客户端的登录请求时触发的,所述目标paas服务器为所述任一agent所对应的paas服务器,所述目标客户端为所述至少一个客户端中的任一客户端;查找队列是否存在空闲的gs的服务器信息,所述队列中存储有空闲的gs的服务器信息,所述空闲的gs为当前未被客户端占用的gs;若所述队列中存在空闲的gs的服务器信息,则从所述队列中获取目标gs的服务器信息,并存储至预设存储空间,以使得所述目标客户端基于所述目标gs的服务器信息与所述目标gs建立连接;其中,所述预设存储空间用于所述目标paas服务器从中获取所述目标gs的服务器信息,并发送至所述目标客户端。
6.在一种可能的实现方式中,所述存储至预设存储空间,包括:将所述目标gs的服务器信息存储至哈希表中。
7.在一种可能的实现方式中,所述云游戏分配系统还包括:网络服务,所述网络服务与所述至少一个gs进行信息交互,所述方法还包括:
接收目标gs发送的服务器标识,并基于所述服务器标识查找所述目标gs的服务器信息;基于所述目标gs的服务器信息与所述目标gs建立绑定关系,以使得所述网络服务与所述目标gs基于所述绑定关系进行数据收发。
8.在一种可能的实现方式中,所述方法还包括:基于所述目标gs的服务器标识,对目标网络连接通道进行标识,所述目标网络连接通道为基于所述绑定关系所创建的连接通道。
9.在一种可能的实现方式中,所述查找队列是否存在空闲的gs的服务器信息,之后还包括:若所述队列中不存在空闲的gs的服务器信息,则返回错误指令,所述错误指令用于表示当前不存在空闲的gs。
10.第二方面,提供了一种游戏服务器分配方法,应用于游戏服务器分配系统,所述游戏服务器分配系统包括:至少一个paas服务器、至少一个agent服务器、至少一个云游戏服务器gs以及至少一个客户端,其中,所述至少一个paas服务器分别与所述至少一个agent进行以及所述至少一个客户端进行信息交互,所述至少一个gs还与所述至少一个客户端进行信息交互,所述方法由任一paas服务器执行,包括:当检测到目标客户端的登录请求时,生成gs的分配请求,所述目标客户端为所述至少一个客户端中的任一客户端;向对应的agent服务器发送所述gs的分配请求,以使得所述对应的agent服务器从队列中查找空闲的gs的服务器信息;从预设存储空间中获取目标gs的服务器信息,以得到所述目标客户端与目标gs建立连接,所述目标gs的服务器信息是由所述对应的agent服务器从队列中查找到空闲的gs,并存储至所述预设存储空间的。
11.在一种可能的实现方式中,所述从预设存储空间中获取目标gs的服务器信息,包括:从哈希表中获取目标gs的服务器信息;其中,所述从预设存储空间中获取目标gs的服务器信息,之后还包括;接收所述目标客户端发送的调度串请求消息;基于所述调度串请求消息向所述目标客户端发送调度串,所述调度串中携带目标gs的服务器信息,以使得所述目标客户端与所述目标gs建立连接关系。
12.在一种可能的实现方式中,所述方法还包括以下任一项:每隔预设时间获取各个gs分别对应的服务器状态,并将当前为空闲状态的gs对应的服务器信息存储至队列中;接收当前处于空闲状态的gs的通知消息,基于所述通知消息获取所述当前处于空闲状态的gs的服务器信息,并将获取到的所述当前处于空闲状态的gs的服务器信息存储至队列中,所述通知消息用于通知所述paas服务器,gs当前处于空闲状态。
13.第三方面,提供了一种游戏服务器分配装置,包括:分配请求接收模块,用于接收目标paas服务器发送的gs的分配请求,所述gs的分配请求是检测到目标客户端的登录请求时触发的,所述目标paas服务器为所述任一agent
所对应的paas服务器;第一查找模块,用于查找队列是否存在空闲的gs的服务器信息,所述队列中存储有空闲的gs的服务器信息,所述空闲的gs为当前未被客户端占用的gs;服务器信息获取模块,用于当所述队列中存在空闲的gs的服务器信息时,从所述队列中获取目标gs的服务器信息,以使得所述目标客户端基于所述目标gs的服务器信息与所述目标gs建立连接;其中,所述预设存储空间用于所述目标paas服务器从中获取所述目标gs的服务器信息,并发送至所述目标客户端。
14.在一种可能的实现方式中,所述装置还包括:存储模块,其中,所述存储模块,用于将所述目标gs的服务器信息存储至哈希表中。
15.在一种可能的实现方式中,所述装置还包括:服务器标识接收模块、第二查找模块以及绑定关系建立模块,其中,所述服务器标识接收模块,用于接收目标gs发送的服务器标识;所述第二查找模块,用于基于所述服务器标识查找所述目标gs的服务器信息;所述绑定关系建立模块,用于基于所述目标gs的服务器信息与所述目标gs建立绑定关系,以使得所述网络服务与所述目标gs基于所述绑定关系进行数据收发。
16.在一种可能的实现方式中,所述装置还包括:标识模块,其中,所述标识模块,用于基于所述目标gs的服务器标识,对目标网络连接通道进行标识,所述目标网络连接通道为基于所述绑定关系所创建的连接通道。
17.在一种可能的实现方式中,所述装置还包括:返回模块,其中,所述返回模块,用于当所述队列中不存在空闲的gs的服务器信息时,返回错误指令,所述错误指令用于表示当前不存在空闲的gs。
18.第四方面,提供了一种游戏服务器分配装置,包括:分配请求生成模块,用于当检测到目标客户端的登录请求时,生成gs的分配请求;分配请求发送模块,用于向对应的agent服务器发送所述gs的分配请求,以使得所述对应的agent服务器从队列中查找空闲的gs的服务器信息;信息获取模块,用于从预设存储空间中获取目标gs的服务器信息,以得到所述目标客户端与目标gs建立连接,所述目标gs的服务器信息是由所述对应的agent服务器从队列中查找到空闲的gs,并存储至所述预设存储空间的。
19.在一种可能的实现方式中,所述信息获取模块在基于所述目标gs的服务器信息向对应目标gs发送指令时,具体用于:从哈希表中获取目标gs的服务器信息,所述目标gs的服务器信息是由所述agent服务器存储至所述哈希表中的;所述装置还包括:请求消息接收模块以及调度串发送模块,其中,所述请求消息接收模块,用于接收所述目标客户端发送的调度串请求消息;所述调度串发送模块,用于基于所述调度串请求消息向所述目标客户端发送调度串,所述调度串中携带目标gs的服务器信息,以使得所述目标客户端与所述目标gs建立连接关系。
20.在一种可能的实现方式中,所述装置还包括:第一处理模块或者第二处理模块,其
中,所述第一处理模块,用于每隔预设时间获取各个gs分别对应的服务器状态,并将当前为空闲状态的gs对应的服务器信息存储至队列中;所述第二处理模块,用于接收当前处于空闲状态的gs的通知消息,基于所述通知消息获取所述当前处于空闲状态的gs的服务器信息,并将获取到的所述当前处于空闲状态的gs的服务器信息存储至队列中,所述通知消息用于通知所述任一paas服务器,gs当前处于空闲状态。
21.第五方面,提供了一种游戏服务器分配系统,所述游戏服务器分配系统包括:至少一个paas服务器、至少一个agent服务器、至少一个云游戏服务器gs以及至少一个客户端,其中,所述至少一个paas服务器分别与所述至少一个agent进行以及所述至少一个客户端进行信息交互,所述至少一个gs还与所述至少一个客户端进行信息交互,其中,所述至少一个paas服务器,用于当检测到对应的目标客户端的登录请求时,向所述目标agent服务器发送gs的分配请求,所述目标客户端为所述至少一个客户端中的任一客户端;所述至少一个agent服务器,用于在接收到gs的分配请求时,查找队列是否存在空闲的gs的服务器信息,并在存在空闲的gs的服务器信息,则从所述队列中获取目标gs的服务器信息,并存储至预设存储空间;所述至少一个paas服务器,还用于从所述预设存储空间中获取所述目标gs的服务器信息,以使得所述目标客户端与所述目标gs建立连接。
22.第六方面,本技术提供一种agent服务器,该agent服务器包括:至少一个处理器;存储器;至少一个应用程序,其中至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述第一方面或者任一种可能的实现方式所示的游戏服务器分配方法。
23.第七方面,提供了一种paas服务器,包括:至少一个处理器;存储器;至少一个应用程序,其中至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述第二方面或任一种可能的实现方式所示的游戏服务器分配方法。
24.第八方面,本技术提供一种计算机可读存储介质,包括:存储有能够被处理器加载并执行上述游戏分配服务器分配方法的计算机程序。
25.综上所述,本技术包括以下有益技术效果:本技术实施例提供了一种游戏服务器分配方法、装置、系统、agent服务器以及存储介质,与相关技术相比,在本技术实施例中当agent服务器在接收到gs的分配请求后,从存储空闲的gs的队列中查找是否存在空闲的gs,并在队列中存在空闲的gs时,从队列中获取空闲的gs的服务器信息,并存储至预设存储空间,以使得客户端可以与空闲状态的gs建立链接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而
可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
26.本技术实施例提供了一种游戏服务器分配方法、装置、系统、paas服务器以及存储介质,与相关技术相比,在本技术实施例中当paas服务器接收到agent服务器发送的登录请求时,由agent服务器从队列中查找是否包含空闲的gs,并将空闲的gs的服务器信息存储至预设存储空闲,以使得paas服务器可以从预设存储空间中获取当前处于空闲状态的gs的服务器信息,以使得当前处于空闲状态的gs与请求客户端建立连接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
附图说明
27.图1是本技术实施例的游戏服务器分配系统示意图;图2是本技术实施例一种游戏服务器分配方法的流程示意图;图3是本技术实施例另一种游戏服务器分配方法的流程示意图;图4是本技术实施例一种游戏服务器分配方法的示例图;图5是本技术实施例一种游戏服务器分配装置结构示意图;图6是本技术实施例另一种游戏服务器分配装置结构示意图;图7是本技术实施例一种agent服务器的结构示意图。
具体实施方式
28.以下结合附图对本技术作进一步详细说明。
29.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的游戏方式。云游戏使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,所有的游戏进程都不在用户使用的终端的客户端中运行,而是在游戏服务器中运行;游戏服务器将游戏进程中的游戏画面、游戏音频压缩编码为媒体流,然后通过网络将媒体流传输给用户使用的客户端,媒体流中可以包括游戏视频流和游戏音频流。用户使用的客户端无需拥有强大的图形处理与数据运算能力,仅仅需要拥有基本的流媒体播放能力,与获取用户输入的操作指令并将用户输入的操作指令发送给游戏服务器的能力即可。
31.其中,云计算技术为游戏服务器提供图形处理能力与数据运算能力,以支撑云游戏的顺利运行。云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台),一般称为基础设施即服务 (infrastructure as aservice,iaas)平台,在云计算资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包
括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas层上可以部署平台即服务 (platform as a service,paas)层,paas层之上再部署软件即服务 (software as a service,saas)层,也可以直接将saas部署在iaas上。paas为软件(例如数据库、web容器等)运行的平台。saas为各式各样的业务软件(例如web门户网站、短信群发器等)。一般来说,saas和paas相对于iaas是上层。
32.云游戏的实现过程包括:不同的用户作为游戏玩家,通过包含云游戏客户端的终端(例如手机、pc(个人计算机)等)进入云游戏中进行游玩,游戏服务器为参与云游戏的客户端启动云游戏的游戏进程;例如,某个玩家使用客户端进入云游戏中进行游玩,这时游戏服务器会在云端启动并运行一个游戏进程,那么该游戏进程与玩家所使用的客户端相对应,由这个游戏进程来为客户端提供云游戏的渲染游戏画面。客户端显示其对应的游戏进程返回的渲染游戏画面;当用户在游戏画面中执行各种操作(例如触屏操作、鼠标键盘操作)时,客户端会将这些操作产生的操作数据上报给游戏服务器,由游戏服务器在对应的游戏进程中根据操作数据而刷新云游戏的游戏画面,再将刷新后的游戏画面返回至客户端中进行显示。
33.本技术实施例提供了一种游戏服务器分配系统,如图1所示,该游戏服务器分配系统包括:至少一个paas服务器、至少一个agent服务器、至少一个云游戏服务器gs以及至少一个客户端,其中,至少一个paas服务器分别与至少一个agent以及至少一个客户端进行信息交互,至少一个gs还与至少一个客户端进行信息交互。在本技术实施例中,一个paas服务器可以对应至少两个agent服务器;进一步地,该游戏服务器分配系统还可以包括:网络服务(netserver),该网络服务与至少一个gs进行信息交互;需要说明的是,在图1中以游戏服务器分配系统中包含一个paas服务器以及一个agent服务器为例进行介绍,但是并不作为对游戏服务器分配系统的限定。
34.进一步地,基于上述所示的游戏服务器分配系统,本技术实施例提供了一种游戏服务器分配方法,由任一agent服务器执行,如图2所示,该游戏服务器分配方法可以包括:步骤s201、接收目标paas服务器发送的gs的分配请求。
35.其中,目标paas服务器为任一agent所对应的paas服务器,gs的分配请求是检测到目标客户端的登录请求时触发的,目标客户端为至少一个客户端中的任一客户端。在本技术实施例中,gs的分配请求用于为请求为目标客户端分配对应的gs。
36.例如,gs的分配请求可以为assign格式的命令,也可以为其它格式的命令,在本技术实施例中不做限定。
37.步骤s202、查找队列是否存在空闲的gs的服务器信息。
38.对于本技术实施例,当agent服务器接收到目标paas服务器发送的gs的分配请求时,从队列中查找是否存在空闲的gs的服务器信息,以为目标客户端分配当前处于空闲状态的gs。
39.进一步地,队列中存储有空闲的gs的服务器信息,空闲的gs为当前未被客户端占用的gs。在本技术实施例中,服务器信息可以包含:服务器标识、服务器处理能力信息、句柄信息以及服务器位置信息。
40.步骤s203、若队列中存在空闲的gs的服务器信息,则从队列中获取目标gs的服务
器信息,并存储至预设存储空间,以使得目标客户端基于目标gs的服务器信息与目标gs建立连接。
41.其中,预设存储空间用于目标paas服务器从中获取目标gs的服务器信息,并发送至目标客户端。
42.对于本技术实施例,若队列中存在gs的服务器信息,也即队列中存在空闲的gs的服务器信息,也按照队列的“先入先出”的方式,从队列中获取目标gs的服务器信息,然后将获取到的目标gs的服务器信息存储至预设存储空间中,以使得目标paas服务器可以从预设存储空间中获取目标gs的服务器信息,以使得目标客户端与目标gs建立连接。
43.具体地,在目标paas服务器从预设存储空间中获取到目标gs的服务器信息后,目标客户端可以向目标paas服务器发送调度串请求消息,目标paas服务器在接收到调度串请求消息后,向该目标客户端发送对应的调度串,以使得该目标客户端基于调度串和对应的gs建立连接。
44.具体地,在一种可能的实现方式中,队列中可以仅存储有存在空闲的服务器的gsid,然后从队列中获取一个gs的gsid,然后将该gsid存储至预设存储空间中,以使得paas服务器可以从预设存储空间中获取目标gsid,以使得目标客户端与目标gs建立连接。
45.本技术实施例提供了一种游戏服务器分配方法,与相关技术相比,在本技术实施例中当agent服务器在接收到gs的分配请求后,从存储空闲的gs的队列中查找是否存在空闲的gs,并在队列中存在空闲的gs时,从队列中获取空闲的gs的服务器信息,并存储至预设存储空间,以使得客户端可以与空闲状态的gs建立链接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
46.进一步地,在游戏服务器分配系统中可知,paas服务器与agent服务器直接进行信息交互,也就是说,paas服务器可以向agent服务器发送gs的分配请求。在本技术实施例中,一个paas服务器可以对应一个agent服务器,也可以一个paas服务器对应多个agent服务器。
47.进一步地,在agent服务器接收到gs的分配请求后,从队列中查找队列中是否包含空闲的gs的服务器信息。在本技术实施例中队列可以为一个队列,也可以为多个队列。进一步地,包含多个队列时,可以根据gs空闲的时间将其放在不同的队列中。
48.进一步地,在查找队列是否存在空闲的gs的服务器信息,之后还可以包括:若队列中不存在空闲的gs的服务器信息,则返回错误指令。在本技术实施例中,错误指令用于表示当前不存在空闲的gs。
49.进一步地,若队列中不存在空闲的gs的服务器信息,则agent服务器可以记录gs请求客户端的相关信息,当检测到空闲状态的gs服务器时,将空闲状态的gs的服务器信息存储至预设存储空间后,向目标paas服务器发送指令,以使得目标paas服务器从预设存储空间中获取gs的服务器信息,以建立gs请求客户端和对应的gs服务器之间的连接关系。
50.进一步地,若队列中存在空闲的gs的服务器信息,则agent服务器从队列中获取该目标gs的服务器信息,并将该目标gs的服务器信息存储至预设存储空间中。在本技术实施例中,将目标gs的服务器信息存储至预设存储空间中,具体可以包括:将目标gs的服务器信息存储至哈希表中。具体地,一个gs对应一个gsid,也即可以将目标gs的gsid存储至哈希表
中,其中,哈希表中的key值就是gs id,从而可以能快速匹配到用户的gs服务器。进一步地,目标paas服务器可以从哈希表中获取目标gs的gsid,并建立目标客户端与目标gs之间的连接关系。在本技术实施例中,将目标gs的gsid存储至哈希表中,以使得目标paas服务器从哈希表中查找目标gs的gsid,由于哈希表的时间复杂为o(1),可以进一步地提高查找效率。
51.进一步地,在目标客户端与目标gs建立连接关系后,目标客户端与目标gs进行数据收发,以正常运行云游戏,为了使得目标客户端与目标gs之间顺利进行数据收发,该方法还可以包括:agent服务器接收目标gs发送的服务器标识,并基于服务器标识查找目标gs的信息;基于目标gs的服务器信息与所述目标gs建立绑定关系,以使得网络服务与目标gs基于绑定关系进行数据收发。
52.对于本技术实施例,由于在网络连接中无法确定连接的gs,所以当websocket连接成功后,在url中携带有gsid,agent服务器接收gsid后,并根据gsid查找到目标gs对应的其他相关信息。在本技术实施例中,目标gs的信息除了包含gsid外,还可以包括:目标gs的句柄信息,服务器位置信息以及服务器处理能力信息等。在本技术实施例中,agent服务器查找到目标gs的信息后,可以基于目标gs的信息与对应的目标gs建立绑定关系,后续agent服务器根据绑定关系向目标gs发送数据。
53.需要说明的是,agent服务器在接收到gsid后,还可以查找gsid对应的服务器的其他信息,主要包括:目标gs的句柄信息,进而根据句柄信息与目标gs建立绑定关系。
54.进一步地,agent服务器在获得目标gs的信息(也可以为服务器的其他信息)发送至网络服务,并基于目标gs的服务器标识,对目标网络连接通道进行标识。在本技术实施例中,目标网络连接通道为基于上述绑定关系所确定的网络连接通道,用于网络服务(netserver)基于该确定出的网络连接通道与目标gs进行信息交互。
55.对于本技术实施例,目标网络连接通道可以为tcpconnect,目标网络连接通道的标识可以包括tcpconnect tag,其中,tcpconnect tag可以为任意类型,例如,若tcpconnect的连接对象的目标gs的gsid=1,则tcpconnect tag=1。
56.本技术实施例提供了另一种游戏服务器分配方法,由任一paas服务器执行,如图3所示,该方法还可以包括:步骤s301、当检测到目标客户端的登录请求时,生成gs的分配请求。
57.其中,目标客户端为至少一个客户端中的任一客户端。在本技术实施例中,当paas服务器检测到任一客户端的登录请求时,生成gs的分配请求。
58.步骤s302、向对应的agent服务器发送gs的分配请求,以使得agent服务器从队列中查找空闲的gs的服务器信息。
59.对于本技术实施例,对应的agent服务器从队列中查找空闲的gs的服务器信息的方式详见上述实施例,在此不再赘述。
60.步骤s303、从预设存储空间中获取目标gs的服务器信息,以得到目标客户端与目标gs建立连接。
61.其中,目标gs的服务器信息是由对应的agent服务器从队列中查找到空闲的gs,并存储至预设存储空间的。
62.对于本技术实施例,paas服务器在发送gs的分配请求后,可以在预设时间后,从预设存储空间中获取目标gs的服务器信息,也可以是在接收到目标gs发送的查找确认消息
后,确定agent服务器查找到了空闲的gs后,从预设存储空间中获取目标gs的服务器信息。
63.本技术实施例提供了一种游戏服务器分配方法,与相关技术相比,在本技术实施例中当paas服务器接收到agent服务器发送的登录请求时,由agent服务器从队列中查找是否包含空闲的gs,并将空闲的gs的服务器信息存储至预设存储空闲,以使得paas服务器可以从预设存储空间中获取当前处于空闲状态的gs的服务器信息,以使得当前处于空闲状态的gs与请求客户端建立连接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
64.具体地,步骤s303中从预设存储空间中获取目标gs的服务器信息,具体可以包括:从哈希表中获取目标gs的服务器信息。在本技术实施例中,paas服务器从哈希表中获取目标gs的服务器信息的方式详见上述实施例,在此不再赘述。
65.进一步地,从预设存储空间中获取目标gs的服务器信息,之后还包括:接收目标客户端发送的调度串请求消息;基于调度串请求消息向目标客户端发送调度串,调度串中携带目标gs的服务器信息,以使得目标客户端与目标gs建立连接关系。在本技术实施例中,当paas服务器从预设存储空间中获取目标gs的服务器信息中,以使得目标客户端与目标gs建立连接关系。在本技术实施例中,预设存储空间可以为哈希表,也可以为其它类型表。当预设存储空间为哈希表时,paas服务器从哈希表中获取目标gs的服务器信息,以使得目标客户端与目标gs建立连接关系。
66.进一步地,在目标客户端与目标gs建立连接关系后,paas服务器向目标gs发送指令,以使得目标客户端与目标gs进行数据收发。
67.进一步地,本技术实施例的另一种可能的实现方式,方法还包括:步骤sm(图中未示出)以及步骤sn(图中未示出)中任一项,在本技术实施例中,步骤sm或者步骤sn可以在步骤s301之前执行,也可以在步骤s302之前执行,也可以为其它的执行顺序,在本技术实施例中不做限定,其中,步骤sm、每隔预设时间获取各个gs分别对应的服务器状态,并将当前为空闲状态的gs对应的服务器信息存储至队列中。
68.例如,paas服务器每隔10分钟获取各个gs(gs1、gs2、gs3以及gs4)分别对应的服务器状态,若检测到gs1、gs2以及gs3当前处于空闲状态,则将gs1、gs2以及gs3分别对应的服务器信息存储至队列中,具体地,可以将gsid=1、gsid=2以及gsid=3存储至队列中。
69.对于本技术实施例,通过paas服务器每隔预设时间将当前处于空闲状态的gs对应的服务器信息存储至队列中,以避免当前存在空闲的gs服务器,但是从队列中查找不到的情况,从而可以提高从队列中查找到处于空闲状态gs的准确度,进而可以进一步地降低客户端与云游戏服务器建立连接所等待的时间,进一步地可以提升用户体验。
70.步骤sn、接收当前处于空闲状态的gs的通知消息,基于通知消息获取当前处于空闲状态的gs的服务器信息,并将获取到的当前处于空闲状态的gs的服务器信息存储至队列中。
71.其中,通知消息用于通知paas服务器,gs当前处于空闲状态。在本技术实施例中,通知消息中可以携带gs的服务器信息,以使得paas服务器可以确定当前处于空闲状态的gs的服务器信息。
72.例如,paas服务器接收到gs1、gs2以及gs3分别发送的通知消息,则获取gs1对应的gsid=1、gs2对应的gsid=2以及gs3对应的gsid=3存储至队列中。
73.对于本技术实施例,通过接收当前处于空闲状态的gs的通知消息,以确定当前处于空闲状态的gs,以避免当前存在空闲的gs服务器,但是从队列中查找不到的情况,从而可以提高从队列中查找到处于空闲状态gs的准确度,进而可以进一步地降低客户端与云游戏服务器建立连接所等待的时间,进一步地可以提升用户体验。
74.上述实施例从agent服务器以及paas服务器分别介绍了一种云服务器分配方法,下述实施例介绍一种具体场景以介绍云服务器分配方法,具体如图4所示,其中,paas服务器向agent服务器发送服务器分配请求,agent服务器查找队列中是否包含空闲的gs,例如,队列中存储有空闲的gs,分别为gs1(gsid=1)、gs2(gsid=2)以及gs3(gsid=3),按照先入先出的原则,agent服务器将gsid=1存储至哈希表中,paas服务器从哈希表中获取gsid=1,以使得客户端与gs1建立连接关系;进一步地,目标gs向agent服务器发送gsid=1,以使得agent服务器查找对应的gs句柄,并基于gs句柄,与gs1建立绑定关系,也即gs1和tcpconnect建立连接,并设置tcpconnecttag=1,网络服务(netsever)通过tcpconnecttag=1对应的绑定关系与gs1进行数据收发。
75.上述实施例从方法流程的角度介绍一种游戏服务器分配方法,下述实施例从虚拟模块或者虚拟单元的角度介绍了一种游戏服务器分配装置,具体详见下述实施例。
76.本技术实施例提供了一种游戏服务器分配装置,如图5所示,游戏服务器分配装置50包括:分配请求接收模块51、第一查找模块52以及服务器信息获取模块53,其中,分配请求接收模块51,用于接收目标paas服务器发送的gs的分配请求。
77.其中,gs的分配请求是检测到目标客户端的登录请求时触发的,目标paas服务器为任一agent所对应的paas服务器。
78.第一查找模块52,用于查找队列是否存在空闲的gs的服务器信息。
79.其中,队列中存储有空闲的gs的服务器信息,空闲的gs为当前未被客户端占用的gs。
80.服务器信息获取模块53,用于当队列中存在空闲的gs的服务器信息时,从队列中获取目标gs的服务器信息,以使得目标客户端基于目标gs的服务器信息与目标gs建立连接;其中,预设存储空间用于目标paas服务器从中获取目标gs的服务器信息,并发送至目标客户端。
81.本技术实施例的另一种可能的实现方式,装置50还包括:存储模块,其中,存储模块,用于将目标gs的服务器信息存储至哈希表中。
82.本技术实施例的另一种可能的实现方式,装置50还包括:服务器标识接收模块、第二查找模块以及绑定关系建立模块,其中,服务器标识接收模块,用于接收目标gs发送的服务器标识;第二查找模块,用于基于服务器标识查找目标gs的服务器信息;绑定关系建立模块,用于基于目标gs的服务器信息与目标gs建立绑定关系,以使得网络服务与目标gs基于绑定关系进行数据收发。
83.本技术实施例的另一种可能的实现方式,装置50还包括:标识模块,其中,
标识模块,用于基于目标gs的服务器标识,对目标网络连接通道进行标识,目标网络连接通道为基于绑定关系所创建的连接通道。
84.本技术实施例的另一种可能的实现方式,装置50还包括:返回模块,其中,返回模块,用于当队列中不存在空闲的gs的服务器信息时,返回错误指令,错误指令用于表示当前不存在空闲的gs。
85.本技术实施例提供了一种游戏服务器分配装置,与相关技术相比,在本技术实施例中当agent服务器在接收到gs的分配请求后,从存储空闲的gs的队列中查找是否存在空闲的gs,并在队列中存在空闲的gs时,从队列中获取空闲的gs的服务器信息,并存储至预设存储空间,以使得客户端可以与空闲状态的gs建立链接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
86.本技术实施例提供了另一种游戏服务器分配装置,如图6所示,游戏服务器分配装置60还可以包括:分配请求生成模块61、分配请求发送模块62以及信息获取模块63,其中,分配请求生成模块61,用于当检测到目标客户端的登录请求时,生成gs的分配请求;分配请求发送模块62,用于向对应的agent服务器发送gs的分配请求,以使得对应的agent服务器从队列中查找空闲的gs的服务器信息;信息获取模块63,用于从预设存储空间中获取目标gs的服务器信息,以得到所述目标客户端与所述目标gs建立连接,所述目标gs的服务器信息是由所述对应的agent服务器从队列中查找到空闲的gs,并存储至所述预设存储空间的。
87.本技术实施例的另一种可能的实现方式,信息获取模块63在基于目标gs的服务器信息向对应目标gs发送指令时,具体用于:从哈希表中获取目标gs的服务器信息,目标gs的服务器信息是由agent服务器存储至哈希表中的;进一步地,装置60还包括:请求消息接收模块以及调度串发送模块,其中,请求消息接收模块,用于接收目标客户端发送的调度串请求消息;调度串发送模块,用于基于调度串请求消息向目标客户端发送调度串,调度串中携带目标gs的服务器信息,以使得目标客户端与目标gs建立连接关系。
88.本技术实施例的另一种可能的实现方式,装置60还包括:第一处理模块或者第二处理模块,其中,第一处理模块,用于每隔预设时间获取各个gs分别对应的服务器状态,并将当前为空闲状态的gs对应的服务器信息存储至队列中;第二处理模块,用于接收当前处于空闲状态的gs的通知消息,基于通知消息获取当前处于空闲状态的gs的服务器信息,并将获取到的当前处于空闲状态的gs的服务器信息存储至队列中。
89.其中,通知消息用于通知任一paas服务器,gs当前处于空闲状态。
90.本技术实施例提供了一种游戏服务器分配装置,与相关技术相比,在本技术实施例中当paas服务器接收到agent服务器发送的登录请求时,由agent服务器从队列中查找是否包含空闲的gs,并将空闲的gs的服务器信息存储至预设存储空闲,以使得paas服务器可
以从预设存储空间中获取当前处于空闲状态的gs的服务器信息,以使得当前处于空闲状态的gs与请求客户端建立连接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
91.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
92.本技术实施例还从实体装置的角度介绍了一种agent服务器,如图7所示,图7所示的agent服务器700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704。需要说明的是,实际应用中收发器704不限于一个,该agent服务器700的结构并不构成对本技术实施例的限定。
93.处理器701可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
94.总线702可包括一通路,在上述组件之间传送信息。总线702可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
95.存储器703可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
96.存储器703用于存储执行本技术方案的应用程序代码,并由处理器701来控制执行。处理器701用于执行存储器703中存储的应用程序代码,以实现前述由agent服务器所执行的方法实施例所示的内容。
97.图7示出的agent服务器仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
98.本技术实施例还从实体装置的角度介绍了一种paas服务器,paas服务器的结构和上述实施例所示的agent服务器相似,在此不再赘述。
99.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。在
本技术实施例中,当agent服务器在接收到paas服务器发送的gs的分配请求后,从存储空闲的gs的队列中查找是否存在空闲的gs,并在队列中存在空闲的gs时,从队列中获取空闲的gs的服务器信息,并存储至预设存储空间,paas服务器从预设存储空间中获取空闲状态gs的服务器信息,以使得客户端可以与空闲状态的gs建立链接,而不需要等待某一gs由占用状态变成空闲状态并且重启后才可以建立连接,从而可以降低客户端与云游戏服务器建立连接所等待的时间,进而可以提升用户体验。
100.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
101.以上仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1