CN110870976B 有效 一种数据处理的方法及装置
技术领域 [0001]本发明涉及数据处理技术领域,特别是涉及一种数据处理的方法、一种数据处理的装置、一种数据处理系统以及一个或多个机器可读介质。 背景技术 [0002]在现有的技术中,游戏服务器的架构包括单服架构和多服架构。 [0003]单服架构的系统中,服务器上主要的场景逻辑实现,都在单一的进程中管理,其余与游戏运行时关联程度不大的部分,放在独立的进程中,比如角色登录、数据存储等。而不同服务器之间的交互玩法,往往采用另外再创建进程,将数据挪到新进程的方式来处理。这种处理方式,使得单独的服务器玩法,与跨服玩法之间,不能很好的融合为一体。 [0004]多服架构系统中,服务器一开始就采用多进程的方式实现场景管理。这种架构比较重,对于一些一开始就采用单进程的轻架构系统来说,这种设计,会额外增加过多的进程间通信的负担。 发明内容 [0005]本发明实施例所要解决的技术问题是提供一种数据处理的方法,以解决现有的单服架构服务器存在的与跨服玩法之间,不能很好的融合为一体的问题以及解决多服架构服务器存在的额外增加过多的进程间通信的负担的问题。 [0006]相应的,本发明实施例还提供了一种数据处理的装置和一种数据处理系统以及一个或多个机器可读介质,用以保证上述方法的实现及应用。 [0007]为了解决上述问题,本发明公开了一种数据处理的方法,所述方法应用于服务器中,所述服务器包括指定数据接口,所述方法包括: [0008]确定游戏客户端的第一视野范围,其中,所述第一视野范围包括多个目标格子单元; [0009]分别确定所述目标格子单元对应的目标服务器; [0010]调用所述指定数据接口,从所述目标服务器中获取所述目标格子单元对应的客户端数据。 [0011]优选地,所述方法还包括: [0012]将所述客户端数据发送至所述游戏客户端,由所述游戏客户端在对应的目标格子单元中显示所述客户端数据。 [0013]优选地,所述确定游戏客户端的第一视野范围,包括: [0014]在预设的场景地图上,确定所述游戏客户端的视野中心点所在的格子单元,作为视野格子单元,其中,所述场景地图包括多个场景块,每个场景块包括多个格子单元; [0015]确定所述视野格子单元在所述视野地图中的坐标信息; [0016]按照预设的所述第一视野范围所包含的格子单元的数量,以所述视野格子单元为中心,确定所述第一视野范围的端点格子单元在所述视野地图中的坐标信息; [0017]基于所述端点格子单元在所述视野地图中的坐标信息,确定第一视野范围。 [0018]优选地,所述分别确定所述目标格子单元对应的目标服务器,包括: [0019]分别确定所述目标格子单元所属的目标场景块; [0020]从预设的场景块标识与服务器的映射关系表中,查找与所述目标场景块对应的服务器,作为目标服务器。 [0021]优选地,所述分别确定所述目标格子单元所属的目标场景块,包括: [0022]分别确定所述目标格子单元在所述视野地图中的坐标信息; [0023]基于所述目标格子单元在所述视野地图中的坐标信息,确定所述格子单元所属的目标场景块。 [0024]优选地,所述确定所述视野格子单元在所述视野地图中的坐标信息,包括: [0025]确定所述视野格子单元在所属场景块中的坐标信息; [0026]将所述视野格子单元在所属场景块中的坐标信息,转换成所述视野格子单元在所述视野地图中的坐标信息。 [0027]优选地,所述指定数据接口为与中心服务器通信的接口,所述调用所述指定数据接口,从所述目标服务器中获取所述目标格子单元对应的客户端数据,包括: [0028]根据所述目标格子单元在所属场景块中的坐标信息、所属场景块的场景块标识以及所述目标服务器的服务器标识,生成数据获取请求; [0029]调用所述指定数据接口,将所述数据获取请求发送至中心服务器; [0030]接收所述中心服务器发送的,根据所述数据获取请求,从对应的目标服务器中获取的客户端数据。 [0031]优选地,所述方法还包括: [0032]当所述服务器所属的某个格子单元中的客户端数据更新时,确定更新数据; [0033]确定包含所述更新的格子单元的第二视野范围; [0034]调用所述指定数据接口,将所述更新数据同步至,所述第二视野范围所包含的格子单元对应的服务器中。 [0035]优选地,所述方法还包括: [0036]判断所述游戏客户端是否为有效客户端; [0037]若所述游戏客户端为无效客户端,则在所述游戏客户端的视野中心点对应格子单元中,删除所述游戏客户端的数据。 [0038]优选地,所述判断所述游戏客户端是否为有效客户端,包括: [0039]判断是否接收到所述游戏客户端发送的校验消息,其中,所述校验消息包括所述游戏客户端的实时视野中心点; [0040]若在预设时间段内没有接收到所述校验消息,或者,所述实时视野中心点对应的格子单元不属于当前服务器管理的格子单元,则判定所述游戏客户端为无效客户端; [0041]若在预设时间段内接收到所述校验消息,且所述实时视野中心点对应的格子单元属于当前服务器管理的格子单元,则判定所述游戏客户端为有效客户端。 [0042]优选地,所述方法还包括: [0043]若判定所述游戏客户端为有效客户端,且当所述校验消息为首次校验消息时,在所述游戏客户端的实时视野中心点对应的格子单元中,存储所述游戏客户端的校验消息。 [0044]优选地,所述校验消息还包括发送所述校验消息的实时校验时间;所述方法还包括: [0045]若判定所述游戏客户端为有效客户端,则在所述游戏客户端的实时视野中心点对应的格子单元中,更新校验时间为所述实时校验时间。 [0046]本发明还公开了一种数据处理的方法,所述方法包括: [0047]生成场景地图; [0048]将所述场景地图划分成多个场景块,其中,每个场景块包括场景块标识; [0049]分别将所述场景块划分成多个格子单元,其中,所述格子单元包括格子标识; [0050]分别为所述场景块分配对应的服务器,生成所述场景块的场景块标识与服务器的映射关系,并将所述映射关系存储在映射关系表中,其中,所述服务器用于对所述场景块对应的格子单元的数据进行管理。 [0051]本发明还公开了一种数据处理的装置,所述装置应用于服务器中,所述服务器包括指定数据接口,所述装置包括: [0052]第一视野范围确定模块,用于确定游戏客户端的第一视野范围,其中,所述第一视野范围包括多个目标格子单元; [0053]目标服务器确定模块,用于分别确定所述目标格子单元对应的目标服务器; [0054]客户端数据获取模块,用于调用所述指定数据接口,从所述目标服务器中获取所述目标格子单元对应的客户端数据。 [0055]本发明还公开了一种数据处理的装置,所述装置包括: [0056]场景地图生成模块,用于生成场景地图; [0057]场景地图划分模块,用于将所述场景地图划分成多个场景块,其中,每个场景块包括场景块标识; [0058]场景块划分模块,用于分别将所述场景块划分成多个格子单元,其中,所述格子单元包括格子标识; [0059]映射模块,用于分别为所述场景块分配对应的服务器,生成所述场景块的场景块标识与服务器的映射关系,并将所述映射关系存储在映射关系表中,其中,所述服务器用于对所述场景块对应的格子单元的数据进行管理。 [0060]本发明还公开了一种数据处理系统,包括: [0061]一个或多个处理器;和 [0062]其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述处理器执行上述的一种数据处理的方法。 [0063]本发明还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行上述的一种数据处理的方法。 [0064]与现有技术相比,本发明实施例包括以下优点: [0065]在本发明实施例中,逻辑服务器中可以包括指定数据接口,当逻辑服务器确定游戏客户端的第一视野范围后,针对第一视野范围中包括的各个目标格子单元,可以确定其对应的目标服务器,并通过调用指定数据接口,从目标服务器中获取所述目标格子单元对应的客户端数据,从而通过单个逻辑服务器实现数据的远程获取和远程传递,便于不同服务器之间的逻辑交互,而不用额外增加过重的进程间的消耗。 [0066]另外,在本发明实施例中,将网络游戏中的场景数据划分为场景块,并将场景块进一步划分为格子单元,以格子单元作为数据的最小处理单元,可以提高数据获取的准确度。并且本发明实施例采用统一的映射表来记录每个逻辑服务器的场景数据,可以明确每个逻辑服务器的管理职责,提高数据获取的效率。 附图说明 [0067]图1是本发明实施例的一种数据处理的方法实施例的步骤流程图; [0068]图2是本发明实施例的场景地图示意图; [0069]图3是本发明实施例的映射关系表示意图; [0070]图4是本发明实施例的网络游戏结构示意图; [0071]图5是本发明实施例的一种数据处理的方法另一实施例的步骤流程图; [0072]图6是本发明实施例的视野范围示意图; [0073]图7是本发明实施例的一种数据处理的装置实施例的结构框图; [0074]图8是本发明实施例的一种数据处理的装置另一实施例的结构框图。 具体实施方式 [0075]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。 [0076]参照图1,示出了本发明实施例的一种数据处理的方法实施例的步骤流程图,本发明实施例可以应用于网络游戏的应用场景中,具体可以包括如下步骤: [0077]步骤101,生成场景地图; [0078]具体的,在网络游戏的场景中,场景数据可以包括与玩法相关的一些逻辑数据,如地图数据等,其中,地图数据可以包括地块的等级、地块的归属、地块的产出、地块的驻守情况,等等。 [0079]该场景地图可以为世界地图,在具体实现中,可以将所有的场景数据平铺在一张世界地图上,生成场景地图。 [0080]步骤102,将所述场景地图划分成多个场景块; [0081]得到场景地图以后,可以将该场景地图划分成多个场景块,每个场景块对应一种场景。 [0082]具体的,如图2的场景地图示意图所示,可以将场景地图切割成n行n列的场景块,共有n*n个场景块,其中,相邻的场景块,是无缝拼接的,可以从一个场景块行走至相邻的场景块。 [0083]在具体实现中,每个场景块在世界地图上可以用(x,y)来表示其坐标,这里(x,y)表示是:第y行的第x个场景块。其中,x和y均为整数,其数值范围可以表示如下: [0084]0<=x<=(n-1);0<=y<=(n-1)。 [0085]每个场景块都包括唯一标识该场景块的场景块标识scene_i,其中, [0086]scene_i=y*n+x。 [0087]步骤103,分别将所述场景块划分成多个格子单元; [0088]将世界地图划分成多个场景块以后,针对每个场景块,可以将其内部再划分成多个格子单元。如图2所示,可以将每个场景块切割成r行r列的格子单元,每个场景块共分成r*r个格子单元。 [0089]在本发明实施例中,每个场景块都有自己独立的坐标系统,每个格子单元在其场景块中的坐标可以表示为(x1,y1),表示是这个场景块中,第y1行的第x1个格子单元。 [0090]x1和y1均为整数,其数值范围可以表示如下: [0091]0<=x1<=(r-1);0<=y1<=(r-1)。 [0092]每个格子单元,在所属的场景块内,都包括唯一标识该格子单元的格子标识grid_i,其中, [0093]grid_i=y1*r+x1。 [0094]需要说明的是,格子单元是管理场景数据的最小单元。玩家的视野,以及数据更新的受影响范围,可以由若干个格子单元组成。 [0095]步骤104,分别为所述场景块分配对应的服务器,生成所述场景块的场景块标识与服务器的映射关系,并将所述映射关系存储在映射关系表中,其中,所述服务器用于对所述场景块对应的格子单元的数据进行管理。 [0096]将世界地图划分成多个场景块以后,可以分别为每个场景块分配有且仅有一个服务器,每个场景块中的数据,仅由分配的服务器存储和加载。 [0097]为场景块分配服务器以后,可以生成场景块的场景块标识与服务器的标识映射关系,并将该映射关系存储在映射关系表中。 [0098]为了区分网络游戏中的各种服务器,上述用于管理场景块的数据的服务器可以称为逻辑服务器,则上述映射表又称为场景与逻辑服务器映射表。如图3的映射关系表示意图所示,在映射关系表中,记录了每个场景块,由哪一台逻辑服务器来存储和加载它的数据。每个场景块,仅由单独的一台逻辑服务器来存储和加载它的数据。但是,一台逻辑服务器,可以存储和加载多个场景块的数据。 [0099]在游戏场景中,除了可以包括多个逻辑服务器,还可以包括一个中心服务器,本发明实施例可以由中心服务器执行。 [0100]图4的网络游戏结构示意图所示,映射关系表在中心服务器和每一台逻辑服务器中都有一份记录。 [0101]在本发明实施例中,将网络游戏中的场景数据划分为场景块,并将场景块进一步划分为格子单元,以格子单元作为数据的最小处理单元,可以提高数据获取的准确度。并且本发明实施例采用统一的映射表来记录每个逻辑服务器的场景数据,可以明确每个逻辑服务器的管理职责,提高数据获取的效率。 [0102]参考图5,示出了本发明实施例的一种数据处理的方法另一实施例的步骤流程图,本发明实施例可以应用于逻辑服务器中,该逻辑服务器可以包括指定数据接口。 [0103]具体的,在本发明实施例中,为了便于逻辑服务器与中心服务器的通信,可以在每个逻辑服务器中添加一个中间层,这个中间层是一组封装好的指定数据接口,它们提供了数据访问、数据修改、数据处理回调等一些列操作。单个逻辑服务器需要操作地图数据时,可以调用指定数据接口。这些指定数据接口内部,已经自动对数据操作做了本地服务器和远程服务器的分别处理。 [0104]图4中,每个逻辑服务器的指定数据接口可以封装为数据处理模块,用于与中心服务器通信,传输本服务器中的数据给其他逻辑服务器,以及向其他逻辑服务器申请场景数据。对应的,中心服务器提供了一个数据的传输和接受模块,用于转发一个逻辑服务器发往另外一个逻辑服务器的场景数据的申请或者传输。 [0105]其中,中心服务器与逻辑服务器之间可以采用TCP协议进行通信。 [0106]在本发明实施例中,在逻辑服务器中设定指定数据接口,使得单服结构的逻辑服务器保留原本的单服逻辑架构,不用额外使用较重的多服架构来处理进程间的通信开销,可以有效地解决不同服务器之间的逻辑交互,而不用额外增加过重的进程间的消耗。 [0107]基于图4的结构示意图,本发明实施例具体可以包括如下步骤: [0108]步骤501,确定游戏客户端的第一视野范围,其中,所述第一视野范围包括多个目标格子单元; [0109]具体的,游戏客户端的视野范围就是玩家在一个屏幕大小的区间,能看到的范围。这个范围可以由游戏设计人员来设置,一般根据游戏性质,选择一个合适的范围,让玩家视野清晰,操作方便为主要目的。 [0110]在本发明实施例的一种优选实施例中,步骤501进一步可以包括如下子步骤: [0111]子步骤S11,在预设的场景地图上,确定所述游戏客户端的视野中心点所在的格子单元,作为视野格子单元,其中,所述场景地图包括多个场景块,每个场景块包括多个格子单元; [0112]子步骤S12,确定所述视野格子单元在所述视野地图中的坐标信息; [0113]子步骤S13,按照预设的所述第一视野范围所包含的格子单元的数量,以所述视野格子单元为中心,确定所述第一视野范围的端点格子单元在所述视野地图中的坐标信息; [0114]子步骤S14,基于所述端点格子单元在所述视野地图中的坐标信息,确定第一视野范围。 [0115]场景地图的生成及划分方式可以参照图1实施例,本发明实施例在此不再赘述了。 [0116]在网络游戏中,每个游戏客户端都有一个视野中心点,这个视野中心点落在哪个格子单元中,就在这个格子单元中记录一下这个客户端的客户端数据,本发明实施例将视野中心点落在的格子单元称为视野格子单元。 [0117]在一种实施方式中,子步骤S12进一步可以包括如下子步骤:确定所述视野格子单元在所属场景块中的坐标信息;将所述视野格子单元在所属场景块中的坐标信息,转换成所述视野格子单元在所述视野地图中的坐标信息。 [0118]具体的,本发明实施例中,有两种坐标系,场景地图采用世界地图坐标系,每个场景块又有各自独立的坐标系。其中,世界地图坐标系以最左下角的场景块的左下角格子为原点(0,0)。每个场景块的坐标系以场景块的左下角格子为原点(0,0)。 [0119]在实际中,上述两种坐标系可以互相转换。假设视野格子单元,在其所属的场景块(row,col)的坐标系中的坐标为(x2,y2),则将其转换成世界地图坐标系的坐标为(row*n+x2,col*n+y2)。 [0120]在本发明实施例中,还可以设定第一视野范围所包含的格子单元的数量,例如,第一视野范围是一个包含s行和s列格子的s*s的矩阵区域,则这个矩阵区域之内,有s*s个格子单元。 [0121]图6的视野范围示意图所示,可以以视野格子单元为中心,确定包含s*s个格子单元的第一视野范围。在具体实现中,确定视野格子单元在视野地图中的坐标信息以后,第一视野范围内其他格子单元在视野地图中的坐标信息都可以计算出来。当确定第一视野范围的端点格子单元以后,则可以确定第一视野范围。 [0122]作为一种示例,第一视野范围的端点格子单元可以包括第一视野范围的左下角、右下角、右上角、左上角这4个角的格子单元。 [0123]假设视野格子单元在世界地图中的坐标表示为(x3,y3),则第一视野范围的左下角、右下角、右上角、左上角4个角的格子单元相对于视野格子单元的坐标都可以确定,这4个角的格子单元的世界地图坐标分别是: [0124]左下角:(x3-s/2,y3-s/2) [0125]右下角:(x 3+s/2,y3-s/2) [0126]右上角:(x3+s/2,y3+s/2) [0127]左上角:(x3-s/2,y3+s/2) [0128]由此4个角,即可确定第一视野范围。 [0129]步骤502,分别确定所述目标格子单元对应的目标服务器; [0130]具体的,该目标服务器可以为目标逻辑服务器。 [0131]当确定游戏客户端的第一视野范围以后,可以获取该第一视野范围内包含的所有格子单元,作为目标格子单元。针对每个目标格子单元,可以确定对应的目标逻辑服务器。 [0132]在本发明实施例的一种优选实施例中,步骤502进一步可以包括如下子步骤: [0133]子步骤S21,分别确定所述目标格子单元所属的目标场景块; [0134]确定目标格子单元以后,可以先确定每个目标格子单元所属的目标场景块。 [0135]在本发明实施例的一种优选实施例中,子步骤S21进一步可以包括如下子步骤: [0136]子步骤S211,分别确定所述目标格子单元在所述视野地图中的坐标信息; [0137]子步骤S212,基于所述目标格子单元在所述视野地图中的坐标信息,确定所述格子单元所属的目标场景块。 [0138]根据目标格子单元在所述视野地图中的坐标信息,可以得到第一视野范围内其他格子单元在视野地图的坐标信息。 [0139]假设某个格子单元在世界地图坐标系中的坐标为(x4,y4),则其所属的场景块为(x4/r,y4/r)。 [0140]例如,某个格子单元转换成世界地图坐标系的坐标为(row*n+x3,col*n+y3),其所属的场景块为((row*n+x3)/r,(col*n+y3)/r)。 [0141]子步骤S22,从预设的场景块标识与服务器的映射关系表中,查找与所述目标场景块对应的服务器,作为目标服务器。 [0142]确定每个目标格子单元对应的场景块以后,可以从上述映射关系表中查找该场景块的场景块标识,以确定负责管理该场景块的数据的逻辑服务器,作为目标服务器。 [0143]步骤503,调用所述指定数据接口,从所述目标服务器中获取所述目标格子单元对应的客户端数据。 [0144]当逻辑服务器想要获得视野范围内某个格子单元的数据时,可以采用中间层提供的指定数据接口,从目标服务器中获得该数据。 [0145]在本发明实施例中,一个视野范围内的数据处理,逻辑服务器只需要调用指定数据接口即可,不用关心数据元素是本地服务器上的数据,还是远程服务器上的数据,中间层做好了全部的数据传输与时效性校验。 [0146]在本发明实施例的一种优选实施例中,步骤503进一步可以包括如下子步骤: [0147]子步骤S31,根据所述目标格子单元在所属场景块中的坐标信息、所属场景块的场景块标识以及所述目标服务器的服务器标识,生成数据获取请求; [0148]在具体实现中,某个格子单元转换成世界地图坐标系的坐标为(row*n+x3,col*n+y3),其所属的场景块为((row*n+x3)/r,(col*n+y3)/r),此格子单元在这个场景块坐标系中的坐标为:((row*n+x3)%r,(col*n+y3)%r);其中,以上%符号表示取余数。 [0149]当想要从目标服务器中获得目标格子单元的客户端数据时,可以根据该目标格子单元在所属场景块中的坐标信息、所属场景块的场景块标识以及目标服务器的服务器标识,生成数据获取请求。 [0150]子步骤S32,调用所述指定数据接口,将所述数据获取请求发送至中心服务器; [0151]子步骤S33,接收所述中心服务器发送的,根据所述数据获取请求,从对应的目标服务器中获取的客户端数据。 [0152]当服务器生成数据获取请求以后,可以调用服务器中的指定数据接口,将数据获取请求发送至中心服务器,由中心服务器根据该数据获取请求,从对应的目标服务器中请求,与上述场景块的场景块标识以及该场景块中目标格子单元对应的客户端数据。 [0153]中心服务器获得客户端数据以后,可以将客户端数据返回逻辑服务器中。 [0154]作为一种示例,该客户端数据可以包含了观察者(客户端)需要让别人知道的一些信息,比如观察者的名字、等级等信息。 [0155]在本发明实施例的一种优选实施例中,还可以包括如下步骤: [0156]将所述客户端数据发送至所述游戏客户端,由所述游戏客户端在对应的目标格子单元中显示所述客户端数据。 [0157]当游戏服务器获得目标格子单元中的客户端数据以后,可以将该客户端数据发送至游戏客户端,由游戏客户端在对应的目标格子单元中显示该客户端数据。 [0158]在本发明实施例的一种优选实施例中,还可以包括如下步骤: [0159]当所述服务器所属的某个格子单元中的客户端数据更新时,确定更新数据; [0160]确定包含所述更新的格子单元的第二视野范围; [0161]调用所述指定数据接口,将所述更新数据同步至,所述第二视野范围所包含的格子单元对应的服务器中。 [0162]在本发明实施例中,每个格子单元中,都记录了视野中心位于本单元格的那些客户端的客户端数据。当场景块scene_i的某个格子单元(x,y)中的客户端数据发生变化时,该场景块对应的逻辑服务器可以将更新的数据传递给同一视野范围内的其他格子单元中,以进行数据的同步。 [0163]具体的,确定视野格子单元在视野地图中的坐标信息以后,可以计算出同一视野范围内其他格子单元在视野地图中的坐标信息,并根据各个格子单元在视野地图中的坐标信息,确定对应的场景块,从而确定对应的逻辑服务器。 [0164]随后,发生数据更新的格子单元所属的场景块对应的逻辑服务器,可以调用其指定数据接口,将更新的客户端数据发送至中心服务器中。在实际中,与该更新的客户端数据一同传输至中心服务器的,还可以包括同一视野范围(即第二视野范围)的其他格子单元所属的场景块对应的逻辑服务器的服务器标识、以及场景块标识、其他格子单元在所属场景块中的坐标信息等。 [0165]中心服务器接收到更新的客户端数据以后,将该数据发送至对应的逻辑服务器中,以进行该更新的格子单元的数据的同步。 [0166]在本发明实施例的一种优选实施例中,还可以包括如下步骤: [0167]判断所述游戏客户端是否为有效客户端; [0168]若所述游戏客户端为无效客户端,则在所述游戏客户端的视野中心点对应格子单元中,删除所述游戏客户端的数据。 [0169]在本发明实施例的一种优选实施例中,上述判断所述游戏客户端是否为有效客户端,包括如下子步骤: [0170]判断是否接收到所述游戏客户端发送的校验消息,其中,所述校验消息包括所述游戏客户端的实时视野中心点; [0171]若在预设时间段内没有接收到所述校验消息,或者,所述实时视野中心点对应的格子单元不属于当前服务器管理的格子单元,则判定所述游戏客户端为无效客户端; [0172]若在预设时间段内接收到所述校验消息,且所述实时视野中心点对应的格子单元属于当前服务器管理的格子单元,则判定所述游戏客户端为有效客户端。 [0173]在本发明实施例中,可以设置一个额外的心跳来单独处理场景块中的格子单元的客户端数据的有效性。每隔一段时间,游戏客户端向对应的逻辑服务器发送一个校验信息,该校验信息可以包括该游戏客户端的实时视野中心点、校验时间、观察者ID等。 [0174]每个逻辑服务器每隔一段时间,就去校验每个格子单元上的观察者,看看其是否及时进行了有效性校验。 [0175]在一种实施方式中,在逻辑服务器在预设时间段内没有接收到游戏客户端发送的校验消息时,则表示该游戏客户端有可能因网络故障断开与该逻辑服务器的连接,或者视野中心点发生了改变,此时,逻辑服务器可以将该游戏客户端判定为无效客户端。针对无效客户端,逻辑服务器可以在对应的格子单元中清除该无效客户端的客户端数据。 [0176]在另一种实施方式中,若逻辑服务器在预设时间段内接收到游戏客户端发送的校验消息,但从该校验消息中携带的实时视野中心点判定该游戏客户端的视野中心点对应的格子单元不属于当前服务器管理的格子单元,则可以判定该游戏客户端为无效客户端。 [0177]相应的,如果逻辑服务器在预设时间段内接收到游戏客户端发送的校验消息,且该游戏客户端的实时视野中心点对应的格子单元属于当前服务器管理的格子单元,则可以判定该游戏客户端为有效客户端。 [0178]在一种实施方式中,当逻辑服务器判定当前游戏客户端为有效客户端时,本发明实施例还可以包括如下步骤: [0179]若判定所述游戏客户端为有效客户端,且当所述校验消息为首次校验消息时,在所述游戏客户端的实时视野中心点对应的格子单元中,存储所述游戏客户端的校验消息。 [0180]如果逻辑服务器判定游戏客户端为有效客户端,且发送的校验消息为首次校验消息时,表示该游戏客户端的视野中心点为新移入的观察者,此时,可以在该实时视野中心点对应的格子单元中添加该游戏客户端的客户端数据,其中,该客户端数据可包括客户端发送的校验数据。 [0181]在一种实施方式中,本发明实施例还可以包括如下步骤: [0182]若判定所述游戏客户端为有效客户端,则在所述游戏客户端的实时视野中心点对应的格子单元中,更新校验时间为实时校验时间。 [0183]在具体实现中,游戏客户端的视野中心点对应的格子单元中记录了这个客户端的校验信息,当该游戏客户端发送校验信息进行校验时,可以对校验信息进行更新,将校验信息中的校验时间更新为实时校验时间,以便于逻辑服务器后续根据该校验时间判断游戏客户端是否在预设时间段内发送了校验信息。 [0184]在本发明实施例中,逻辑服务器中可以包括指定数据接口,当逻辑服务器确定游戏客户端的第一视野范围后,针对第一视野范围中包括的各个目标格子单元,可以确定其对应的目标服务器,并通过调用指定数据接口,从目标服务器中获取所述目标格子单元对应的客户端数据,从而通过单个逻辑服务器实现数据的远程获取和远程传递,便于不同服务器之间的逻辑交互,而不用额外增加过重的进程间的消耗。 [0185]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。 [0186]参照图7,示出了本发明实施例的一种数据处理的装置实施例的结构框图,所述装置应用于服务器中,所述服务器包括指定数据接口,所述装置具体可以包括如下模块: [0187]第一视野范围确定模块701,用于确定游戏客户端的第一视野范围,其中,所述第一视野范围包括多个目标格子单元; [0188]目标服务器确定模块702,用于分别确定所述目标格子单元对应的目标服务器; [0189]客户端数据获取模块703,用于调用所述指定数据接口,从所述目标服务器中获取所述目标格子单元对应的客户端数据。 [0190]在本发明实施例的一种优选实施例中,所述装置还可以包括如下模块: [0191]客户端数据发送模块,用于将所述客户端数据发送至所述游戏客户端,由所述游戏客户端在对应的目标格子单元中显示所述客户端数据。 [0192]在本发明实施例的一种优选实施例中,所述第一视野范围确定模块701进一步可以包括如下子模块: [0193]视野格子单元确定子模块,用于在预设的场景地图上,确定所述游戏客户端的视野中心点所在的格子单元,作为视野格子单元,其中,所述场景地图包括多个场景块,每个场景块包括多个格子单元; [0194]视野坐标确定子模块,用于确定所述视野格子单元在所述视野地图中的坐标信息; [0195]端点格子单元确定子模块,用于按照预设的所述第一视野范围所包含的格子单元的数量,以所述视野格子单元为中心,确定所述第一视野范围的端点格子单元在所述视野地图中的坐标信息; [0196]视野范围确定子模块,用于基于所述端点格子单元在所述视野地图中的坐标信息,确定第一视野范围。 [0197]在本发明实施例的一种优选实施例中,所述目标服务器确定模块702进一步可以包括如下子模块: [0198]目标场景块确定子模块,用于分别确定所述目标格子单元所属的目标场景块; [0199]查找子模块,用于从预设的场景块标识与服务器的映射关系表中,查找与所述目标场景块对应的服务器,作为目标服务器。 [0200]在本发明实施例的一种优选实施例中,所述目标场景块确定子模块进一步可以包括如下单元: [0201]坐标信息确定单元,用于分别确定所述目标格子单元在所述视野地图中的坐标信息; [0202]场景块确定单元,用于基于所述目标格子单元在所述视野地图中的坐标信息,确定所述格子单元所属的目标场景块。 [0203]在本发明实施例的一种优选实施例中,所述视野坐标确定子模块进一步可以包括如下单元: [0204]场景块坐标确定单元,用于确定所述视野格子单元在所属场景块中的坐标信息; [0205]坐标转换单元,用于将所述视野格子单元在所属场景块中的坐标信息,转换成所述视野格子单元在所述视野地图中的坐标信息。 [0206]在本发明实施例的一种优选实施例中,所述指定数据接口为与中心服务器通信的接口,所述客户端数据获取模块703进一步可以包括如下子模块: [0207]数据获取请求生成子模块,用于根据所述目标格子单元在所属场景块中的坐标信息、所属场景块的场景块标识以及所述目标服务器的服务器标识,生成数据获取请求; [0208]数据获取请求发送子模块,用于调用所述指定数据接口,将所述数据获取请求发送至中心服务器; [0209]客户端数据接收子模块,用于接收所述中心服务器发送的,根据所述数据获取请求,从对应的目标服务器中获取的客户端数据。 [0210]在本发明实施例的一种优选实施例中,所述装置还可以包括如下模块: [0211]更新数据确定模块,用于当所述服务器所属的某个格子单元中的客户端数据更新时,确定更新数据; [0212]第二视野范围确定模块,用于确定包含所述更新的格子单元的第二视野范围; [0213]数据同步模块,用于调用所述指定数据接口,将所述更新数据同步至,所述第二视野范围所包含的格子单元对应的服务器中。 [0214]在本发明实施例的一种优选实施例中,所述装置还可以包括如下模块: [0215]有效判断模块,用于判断所述游戏客户端是否为有效客户端; [0216]数据删除模块,用于若所述游戏客户端为无效客户端,则在所述游戏客户端的视野中心点对应格子单元中,删除所述游戏客户端的数据。 [0217]在本发明实施例的一种优选实施例中,所述有效判断模块还用于: [0218]判断是否接收到所述游戏客户端发送的校验消息,其中,所述校验消息包括所述游戏客户端的实时视野中心点; [0219]若在预设时间段内没有接收到所述校验消息,或者,所述实时视野中心点对应的格子单元不属于当前服务器管理的格子单元,则判定所述游戏客户端为无效客户端; [0220]若在预设时间段内接收到所述校验消息,且所述实时视野中心点对应的格子单元属于当前服务器管理的格子单元,则判定所述游戏客户端为有效客户端。 [0221]在本发明实施例的一种优选实施例中,所述装置还可以包括如下模块: [0222]校验消息存储模块,用于若判定所述游戏客户端为有效客户端,且当所述校验消息为首次校验消息时,在所述游戏客户端的实时视野中心点对应的格子单元中,存储所述游戏客户端的校验消息。 [0223]在本发明实施例的一种优选实施例中,所述校验消息还包括发送所述校验消息的实时校验时间;所述装置还可以包括如下模块: [0224]校验时间更新模块,用于若判定所述游戏客户端为有效客户端,则在所述游戏客户端的实时视野中心点对应的格子单元中,更新校验时间为所述实时校验时间。 [0225]参照图8,示出了本发明实施例的一种数据处理的装置另一实施例的结构框图,所述装置具体可以包括如下模块: [0226]场景地图生成模块801,用于生成场景地图; [0227]场景地图划分模块802,用于将所述场景地图划分成多个场景块,其中,每个场景块包括场景块标识; [0228]场景块划分模块803,用于分别将所述场景块划分成多个格子单元,其中,所述格子单元包括格子标识; [0229]映射模块804,用于分别为所述场景块分配对应的服务器,生成所述场景块的场景块标识与服务器的映射关系,并将所述映射关系存储在映射关系表中,其中,所述服务器用于对所述场景块对应的格子单元的数据进行管理。 [0230]对于装置实施例而言,由于其与上述系统及方法实施例基本相似,所以描述的比较简单,相关之处参见系统及方法实施例的部分说明即可。 [0231]本发明实施例还提供了一种数据处理系统,包括: [0232]一个或多个处理器;和 [0233]其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述处理器执行上述的方法实施例。 [0234]本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行上述的方法实施例。 [0235]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。 [0236]本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。 [0237]本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。 [0238]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。 [0239]这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。 [0240]尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。 [0241]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。 [0242]以上对本发明所提供的一种数据处理的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
现在,一起体验智慧芽的产品和服务
自动注册,无需人工审核,即可立即开始查询专利
立即注册
澳门正版图库

AI助手