数据同步方法及装置与流程

文档序号:17384145发布日期:2019-04-13 00:03阅读:196来源:国知局
数据同步方法及装置与流程

本发明涉及游戏开发技术领域,具体而言,涉及一种数据同步方法及装置。



背景技术:

在网络游戏运营过程中,通常需要开启多个游戏世界,并允许玩家在多个游戏世界之间进行切换或查询其他游戏世界中相关游戏数据的操作。这就需要在网络游戏中引入一种数据同步方法来解决在不同游戏世界之间的数据同步问题,例如玩家需要查询不同游戏世界中另一玩家的一些通用信息,就必须使用一种数据同步方法以便在不同的游戏世界中进行查询。同时,当某一游戏世界中保存的数据发生变化时,其他游戏世界也应发生相同的变化,保证查询到的数据的正确性。

目前网络游戏运行的过程中,采用直接向其他游戏世界进行查询的方式来进行数据同步或将需要查询的数据保存到统一的数据服务器,即单独开启一个服务进程用来统一保存游戏数据、响应游戏世界的查询命令,这些方式查询速度慢,操作繁琐。



技术实现要素:

有鉴于此,本申请的目的在于,提供一种数据同步方法及装置以改善上述问题。

本申请实施例提供一种数据同步方法,应用于第一游戏服务器,所述方法包括:

根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值;

根据所述索引值对所述待更改的数据进行更改,将更改后的数据打包,以获得同步数据包;

发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。

进一步地所述数据更改请求包括数据修改请求,所述根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值的步骤,包括:

在游戏运行逻辑表明用户队伍中的任意一个用户的属性数据发生变化时,发起数据修改请求,并获得该用户的待修改的属性数据,将所述待修改的属性数据打包;

将所述用户的用户id作为打包后的所述待修改的属性数据的索引值。

进一步地,所述数据更改请求还包括数据添加请求,所述根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值的步骤,包括:

在游戏运行逻辑表明用户队伍中添加有新用户时,发起数据添加请求,并获得所述新用户的待添加数据,将所述待添加数据打包;

将所述用户队伍的用户队伍id作为打包后的所述待添加的数据的索引值。

进一步地,所述数据更改请求还包括数据删除请求,所述根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值的步骤,包括:

在游戏运行逻辑表明用户队伍中具有被删除用户时,发起数据删除请求,并获得所述被删除用户的待删除数据,将所述待删除数据打包;

将所述用户队伍的用户队伍id作为打包后的所述待删除数据的索引值。

本发明实施例还提供一种数据同步方法,应用于第二游戏服务器中,包括:

接收并解析第一游戏服务器发送的同步数据包,其中所述同步数据包中包括索引值、数据更改请求和索引值对应的数据;

根据解析后的同步数据包中的索引值,查找到所述同步数据包中所述索引值对应的数据;

根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步,其中,所述数据更改请求包括数据修改请求、数据添加请求和数据删除请求。

进一步地,所述数据更改请求包括数据修改请求,所述根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步的步骤,包括:

根据所述索引值对应的待修改用户的用户id获得存储的该待修改用户的属性数据;

根据所述索引值对应的修改数据对存储的所述属性数据进行修改以完成数据同步。

进一步地,所述数据更改请求包括数据添加请求,所述根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步的步骤,包括:

根据所述索引值对应的待添加用户队列的用户队列id获得存储的该待添加用户队列的属性数据;

将所述索引值对应的添加数据添加到存储的该待添加用户队列的属性数据中以完成数据同步。

进一步地,所述数据更改请求包括数据删除请求,所述根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步的步骤,包括:

根据所述索引值对应的待删除用户队列的用户队列id获得存储的该待删除用户队列的属性数据;

从所述待删除用户队列的属性数据中将所述索引值对应的删除数据进行删除以完成数据同步。

本发明实施例还提供一种数据同步装置,应用于第一游戏服务器,包括:

请求模块,用于根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值;

第一数据处理模块,根据所述索引值对数据进行更改,将更改后的数据打包,以获得同步数据包;

第一发送模块,用于发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。

本发明实施例还提供一种数据同步装置,应用于第二游戏服务器,所述装置包括:

第二接收模块,用于接收并解析第一游戏服务器发送的同步数据包,其中所述同步数据包中包括索引值、更改请求和索引值对应的数据;

查找模块,根据解析后的同步数据包中的索引值,查找到所述索引值对应的数据;

第二数据处理模块,根据所述更改请求,对所述索引值对应的数据进行更改操作,完成数据同步。

本发明实施例提供了一种数据同步方法及装置,方法应用于第一游戏服务器,所述方法包括根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值;根据所述索引值对所述待更改的数据进行更改,将更改后的数据打包,以获得同步数据包;发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。本方案能够通过发生数据变更的服务器主动发送同步数据包给其他服务器,以此减少数据查询次数,提高数据同步的速度,操作简单快捷,能够进一步提高用户体验。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的结构框图。

图2为本申请实施例提供的数据同步方法的流程图。

图3为图2中步骤s100的子步骤的流程图。

图4为图2中步骤s100的另一子步骤的流程图。

图5为图2中步骤s100的又一子步骤的流程图。

图6为本申请实施例提供的数据同步方法的另一流程图。

图7为图6中步骤s600的子步骤的流程图。

图8为图6中步骤s600的另一子步骤的流程图。

图9为图6中步骤s600的又一子步骤的流程图。

图10为本申请实施例提供的数据同步装置的功能模块框图。

图11为本申请实施例提供的数据同步装置的另一功能模块框图。

图标:100-电子设备;110-数据同步装置;120-处理器;130-存储器;111-请求模块;112-第一数据处理模块;113-第一发送模块;114-第二接收模块;115-查找模块;116-第二数据处理模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

现有技术一,在一些网络游戏中,使用直接向其他游戏世界进行查询的方式来进行数据同步,既本地游戏世界将需要查询的数据字段打包成命令发送给目标游戏世界,目标游戏世界接收到命令后解析、查询,再把查询结果打包发回本地游戏世界。

现有技术二,还有一些网络游戏使用了将需要查询的数据保存到统一的数据服务器,即单独开启一个服务进程用来统一保存游戏数据、响应游戏世界的查询命令。与现有技术一一样,现有技术二同样需要将要查询的数据字段打包成命令发送给数据服务器,数据服务器解析命令、查询后将查询结果打包发送回游戏世界。

使用这些方法进行数据同步需要将需要查询的数据字段打包成命令,查询结果也需要打包发回,操作繁琐。同时查询速度慢,利用网络发送数据包,查询速度不能保证。

基于上述研究发现,本申请提供一种数据同步方法,可以通过发生数据变更的服务器主动发送同步数据包给其他服务器,其他服务器对接收到的同步数据解码,执行相应操作,达到便捷且快速同步数据的目的,以解决现有技术中存在的查询速度慢,操作繁琐的弊端。

如图1所示,本发明实施例基于上述研究发现提供了一种电子设备100,所述电子设备100包括存储器130、处理器120和数据同步装置110。

所述存储器130和处理器120之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据同步装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器130中的软件功能模块。所述处理器120用于执行所述存储器130中存储的可执行的计算机程序,例如,所述数据同步装置110所包括的软件功能模块及计算机程序等,以实现数据同步方法。

所述存储器130是随机存取存储器(randomaccessmemory,ram),其中,存储器130用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。

所述处理器120可能是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。

可以理解,图1所示的结构仅为示意,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

本实施例中所述电子设备100的具体类型可以是游戏服务器。

结合图2,本发明实施例还提供一种可应用于第一游戏服务器的的数据同步方法,该第一游戏服务器可为上述的电子设备100。其中,所述方法有关的流程所定义的方法步骤可以由所述处理器120实现。下面将对图2所示的具体流程进行详细阐述。

s100,根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值。

具体地,请结合参阅图3,本发明实施例中,所述数据更改请求包括数据修改请求,所述根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值的步骤,其中一个实施例的步骤包括s101和s102。

s101,在游戏运行逻辑表明用户队伍中的任意一个用户的属性数据发生变化时,发起数据修改请求,并获得该用户的待修改的属性数据,将所述待修改的属性数据打包。

s102,将所述用户的用户id作为打包后的所述待修改的属性数据的索引值。

在本实施例中,用户的属性数据可以包括,但不限于,生命值、法力值、体力、装备、积分、货币和物品等。

请结合参阅图4,其中另一个步骤包括s101a和s102a。

s101a,在游戏运行逻辑表明用户队伍中添加有新用户时,发起数据添加请求,并获得所述新用户的待添加数据,将所述待添加数据打包;

s102a,将所述用户队伍的用户队伍id作为打包后的所述待添加的数据的索引值。

具体地,例如,用户a和用户b已建立一个用户队伍,用户队伍的id为m,其中用户a为队长,用户a与用户b分属不同的服务器,用户a连接游戏服务器a,用户b连接游戏服务器b。

用户a邀请用户c加入该队伍m,用户c连接游戏服务器c。此时游戏运行逻辑就表明用户队伍中有添加的新用户c,游戏服务器c发起数据添加请求,并获取用户c的数据,将用户c的数据打包,并将用户队伍的id即m作为打包后的用户c的数据的索引值。

请结合参阅图5,本发明实施例中又一个步骤包括s101b和s102b。

s101b,在游戏运行逻辑表明用户队伍中具有被删除用户时,发起数据删除请求,并获得所述被删除用户的待删除数据,将所述待删除数据打包。

s102b,将所述用户队伍的用户队伍id作为打包后的所述待删除数据的索引值。

具体地,例如,用户a、用户b和用户c已建立一个用户队伍,用户队伍的id为m,其中用户a为队长,用户a、用户b和用户c分属不同的服务器,用户a连接游戏服务器a,用户b连接游戏服务器b,用户c连接游戏服务器c。

当队长即用户a将用户c踢出队伍或用户c自动退出队伍时,游戏运行逻辑就表明用户队伍中有被删除的用户,游戏服务器c发起数据删除请求,并获取用户c的数据,将用户c的数据打包,并将用户队伍的id即m作为打包后的用户c的数据的索引值。

s200,根据所述索引值对所述待更改的数据进行更改,将更改后的数据打包,以获得同步数据包。

具体地,第一游戏服务器中对打包后的数据,根据所述索引值对所述待更改的数据进行更改,将更改后的包括至少一个更改请求的数据打包。

s300,发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。

请参阅图6,本发明实施例还提供一种数据同步方法,应用于第二游戏服务器中,该第二游戏服务器可为上述的电子设备100,该方法包括:

s400,接收并解析第一游戏服务器发送的同步数据包,其中所述同步数据包中包括索引值、数据更改请求和索引值对应的数据;

s500,根据解析后的同步数据包中的索引值,查找到所述同步数据包中所述索引值对应的数据;

s600,根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步,其中,所述数据更改请求包括数据修改请求、数据添加请求和数据删除请求。

请结合参阅图7,具体地,所述数据更改请求包括数据修改请求,所述根据所述数据更改请求,对所述索引值对应的数据进行更改操作,完成数据同步的步骤,其中一个实施例的步骤包括s601和s602。

s601,根据所述索引值对应的待修改用户的用户id获得存储的该待修改用户的属性数据。

s602,根据所述索引值对应的修改数据对存储的所述属性数据进行修改以完成数据同步。

在本实施例中,用户的属性数据可以包括,但不限于,生命值、法力值、体力、装备、积分、货币和物品等。

请结合参阅图8,另一实施例包括s601a和s602a。

s601a,根据所述索引值对应的待添加用户队列的用户队列id获得存储的该待添加用户队列的属性数据。

s602a,将所述索引值对应的添加数据添加到存储的该待添加用户队列的属性数据中以完成数据同步。

具体地,例如,用户a和用户b已建立一个用户队伍,用户队伍的id为m,其中用户a为队长,用户a与用户b分属不同的服务器,用户a连接游戏服务器a,用户b连接游戏服务器b。

用户a邀请用户c加入该队伍m,用户c连接游戏服务器c。此时游戏运行逻辑就表明用户队伍中有添加的新用户c,游戏服务器c发送同步数据包至游戏服务器a和游戏服务器b,游戏服务器a和游戏服务器b经过s400和s500后,获得了同步数据包中的索引值,即用户队伍的id——m和根据m获得存储的该待添加用户队列的属性数据,将所述索引值对应的添加数据添加到存储的该待添加用户队列的属性数据中以完成数据同步。

请结合参阅图9,又一实施例包括s601b和s602b。

s601b,根据所述索引值对应的待删除用户队列的用户队列id获得存储的该待删除用户队列的属性数据;

s602b,从所述待删除用户队列的属性数据中将所述索引值对应的删除数据进行删除以完成数据同步。

具体地,例如,用户a、用户b和用户c已建立一个用户队伍,用户队伍的id为m,其中用户a为队长,用户a、用户b和用户c分属不同的服务器,用户a连接游戏服务器a,用户b连接游戏服务器b,用户c连接游戏服务器c。

当队长即用户a将用户c踢出队伍或用户c自动退出队伍时,游戏运行逻辑就表明用户队伍中有被删除的用户,游戏服务器c发送同步数据包至游戏服务器a和游戏服务器b,游戏服务器a和游戏服务器b经过s400和s500后,获得了同步数据包中的索引值,即用户队伍的id——m和根据m获得存储的该待删除用户队列的属性数据,从所述待删除用户队列的属性数据中将所述索引值对应的删除数据进行删除以完成数据同步。

需要说明的是,在本申请中,第一游戏服务器和第二游戏服务器其功能可互换,即第一游戏服务器可作为发起数据同步的发起方、第二游戏服务器可作为接收同步申请以进行数据同步的接收方,或者第二游戏服务器可作为发起数据同步的发起方、第一游戏服务器可作为接收同步申请以进行数据同步的接收方。

请参阅图10,本发明实施例还提供一种数据同步装置110,应用于第一游戏服务器,包括:

请求模块111,用于根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值;

第一数据处理模块112,根据所述索引值对数据进行更改,将更改后的数据打包,以获得同步数据包;

第一发送模块113,用于发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。

请参阅图11,本发明实施例还提供一种数据同步装置110,应用于第二游戏服务器,所述装置包括:

第二接收模块114,用于接收并解析第一游戏服务器发送的同步数据包,其中所述同步数据包中包括索引值、更改请求和索引值对应的数据;

查找模块115,根据解析后的同步数据包中的索引值,查找到所述索引值对应的数据;

第二数据处理模块116,根据所述更改请求,对所述索引值对应的数据进行更改操作,完成数据同步。

可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。

综上所述,本发明实施例提供了一种数据同步方法及装置,方法应用于第一游戏服务器,所述方法包括根据游戏运行逻辑,发起数据更改请求,将待更改的数据打包并分配索引值;根据所述索引值对所述待更改的数据进行更改,将更改后的数据打包,以获得同步数据包;发送所述同步数据包至多个第二游戏服务器,以使多个所述第二游戏服务器根据所述同步数据包完成数据同步。本方案能够通过发生数据变更的服务器主动发送同步数据包给其他服务器,以此减少数据查询次数,提高数据同步的速度,操作简单快捷,能够进一步提高用户体验。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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