CN107911374B - 数据同步方法和装置、存储介质及电子装置 - Google Patents
数据同步方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN107911374B CN107911374B CN201711211450.5A CN201711211450A CN107911374B CN 107911374 B CN107911374 B CN 107911374B CN 201711211450 A CN201711211450 A CN 201711211450A CN 107911374 B CN107911374 B CN 107911374B
- Authority
- CN
- China
- Prior art keywords
- account
- application client
- list
- target
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Abstract
本发明公开了一种数据同步方法和装置、存储介质及电子装置。其中,该方法包括:获取使用第一账号的应用客户端发送的操作请求,其中,操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应操作请求生成操作数据包;将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端。本发明解决了由于采用现有的广播方式进行数据同步所导致的数据同步效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据同步方法和装置、存储介质及电子装置。
背景技术
目前在游戏应用中,当多个玩家在游戏场景中进行互动时,所产生的游戏数据往往需要被同步到上述多个玩家的客户端,以实现游戏效果的同步显示。例如,当玩家A请求在当前场景中施放预定技能S时,游戏应用的服务器在判断出满足技能施放条件之后,可生成预定技能S的技能开始事件,并向在当前场景中位于施放者(玩家A)附近的所有玩家广播该技能开始事件,下发与预定技能S匹配的技能包,以使在当前场景中的其他玩家根据该技能包同步展示对应的技能动作;之后,当预定技能S产生效果时,服务器可获取对上述预定技能S产生作用的目标玩家,并对目标玩家进行效果计算,生成技能效果事件,然后向施放者(玩家A)和目标玩家进行该技能效果事件的广播。当预定技能S结束时,可进一步生成技能结束事件,并同样广播该技能结束事件。
然而,在游戏应用的当前场景中所涉及的玩家聚集较为密集的情况下,敌对双方的玩家会围绕当前场景中的一个争夺点进行激烈的对抗。为了将对抗过程所生成的事件和/或技能包通过广播形式下发给当前场景中的所有玩家,将产生大量需要同步的游戏数据。也就是说,在采用现有的广播方式进行数据同步时,将导致数据同步效率较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例中提供了一种数据同步方法和装置、存储介质及电子装置,以至少解决由于采用现有的广播方式进行数据同步所导致的数据同步效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种数据同步方法,包括:获取使用第一账号的应用客户端发送的操作请求,其中,上述操作请求用于指示上述第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应上述操作请求生成操作数据包;将上述操作数据包同步发送至使用上述第一账号的应用客户端,及使用上述目标账号的应用客户端。
根据本发明实施例的另一方面,还提供了一种数据同步装置,包括:第一获取单元,用于获取使用第一账号的应用客户端发送的操作请求,其中,上述操作请求用于指示上述第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;生成单元,用于响应上述操作请求生成操作数据包;第一同步单元,用于将上述操作数据包同步发送至使用上述第一账号的应用客户端,及使用上述目标账号的应用客户端。
根据本发明实施例的又一方面,还提供了一种存储介质,上述存储介质包括存储的程序,其中,上述程序运行时执行上述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器通过上述计算机程序执行上述的方法。
在本发明实施例中,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,而无需将上述同步数据包广播发送给第一账号当前视野内的全部账号,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率,保证应用客户端运行的流畅性。解决了由于采用现有的广播方式进行数据同步所导致的数据同步效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据同步方法的应用环境示意图;
图2是根据本发明实施例的一种可选的数据同步方法的流程图;
图3是根据本发明实施例的一种可选的数据同步方法的示意图;
图4是根据本发明实施例的另一种可选的数据同步方法的示意图;
图5是根据本发明实施例的另一种可选的数据同步方法的流程图;
图6是根据本发明实施例的又一种可选的数据同步方法的示意图;
图7是根据本发明实施例的又一种可选的数据同步方法的示意图;
图8是根据本发明实施例的一种可选的数据同步装置的示意图;
图9是根据本发明实施例的一种可选的用于实施数据同步方法的电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,提供了一种上述数据同步方法的实施例。作为一种可选的实施方式,该数据同步方法可以但不限于应用于如图1所示的应用环境中,服务器102通过网络110获取终端104内使用第一账号(如图中所示A)的应用客户端发送的操作请求,其中,该操作请求用于指示第一账号请求对目标账号执行预定操作,上述目标账号为当前视野所显示的账号中的部分或全部账号;服务器102响应上述操作请求生成操作数据包,并将上述操作数据包同步发送至使用第一账号(如图中所示A)的应用客户端所在的终端104,使用目标账号(如图中所示B)的应用客户端所在的终端108,而在所显示的账号中,第一账号未执行操作的其他账号(如图中所示C),则不再同步发送操作数据包。
在本实施例中,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,而无需将上述同步数据包广播发送给第一账号当前视野内的全部账号,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率,保证应用客户端运行的流畅性。
可选地,在本实施例中,上述终端可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式PC机、数字电视及其他需要显示有媒体资源的硬件设备。上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。上述只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,提供了一种数据同步方法,如图2所示,该方法包括:
S202,获取使用第一账号的应用客户端发送的操作请求,其中,操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;
S204,响应操作请求生成操作数据包;
S206,将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端。
可选地,在本实施例中,上述数据同步方法可以但不限于应用于终端应用中,如游戏应用,其中上述游戏应用可以包括但不限于以下至少之一:二维(Two Dimension,简称2D)游戏应用、三维(Three Dimension,简称3D)游戏应用、虚拟现实(Virtual Reality,简称VR)游戏应用、增强现实(Augmented Reality,简称AR)游戏应用、混合现实(MixedReality,简称MR)游戏应用。其中,在上述游戏应用中可以包括但不限于与所使用账号对应的虚拟角色对象。例如,应用于大型多人在线角色扮演游戏(Massive(或Massively)Multiplayer Online Role-Playing Game,简称MMORPG)的玩家对抗(Player Vs Player,简称PVP)游戏过程中。以上只是一种示例,本实施例对此不作任何限定。
需要说明的是,在本实施例中,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,而无需将上述同步数据包广播发送给第一账号当前视野内的全部账号,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率,保证应用客户端运行的流畅性。
可选地,在本实施例中,以游戏应用为例,上述第一账号对目标账号所执行的预定操作可以包括但不限于:第一账号对目标账号释放技能所执行的操作,例如:攻击技能、防守技能、移动技能、隐身技能等等。上述仅是一种示例,本实施例中对此不做任何限定。
其中,上述预定操作对应的操作数据包可以包括但不限于携带有第一账号的标识、第一账号执行上述预定操作的攻击数值以及第一账号执行上述预定操作后的状态变化,目标账号的标识、目标账号接受预定操作后的伤害数值,以及目标账号接受预定操作后的状态变化。例如,上述状态变化可以包括但不限于通过以下方式表征:血量变化、位移距离、是否死亡等等。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,响应操作请求生成操作数据包可以包括但不限于:服务器响应上述获取到的操作请求对执行上述预定操作后的第一账号和目标账号进行对应的结果运算,以利用运算结果生成上述操作数据包。例如,假设第一账号对应的虚拟角色所要执行的预定操作为攻击操作,该攻击操作的攻击力为100,在所显示的账号中接受该攻击操作的目标账号包括两个账号,其中,第一个账号A对应的虚拟角色受到的伤害值为40,第二个账号B对应的虚拟角色受到的伤害值为60。进一步假设上述数值以血量表征,则服务器可以计算出,基于第一个账号A对应的虚拟角色的血量剩余值为30,30-40=-10,也就是说,第一个账号A对应的虚拟角色已经死亡;而基于第二个账号B对应的虚拟角色的血量剩余值为150,150-60=90,也就是说,第二个账号B对应的虚拟角色还将继续存活。根据上述运算结果生成第一账号及目标账号的操作数据包,并将该操作数据包同步发送至释放技能的使用第一账号的应用客户端,以及接受技能的使用目标账号的应用客户端。从而实现将根据该预定操作所生成的操作数据包选择性同步给使用第一账号的应用客户端和使用目标账号的应用客户端,而无需同步给当前视野中所显示的使用其他账号的应用客户端,以减少数据传输,达到提高数据同步传输效率的目的。此外,选择性同步给部分账号后,还将使得账号通过所使用的应用客户端显示简化后的显示界面,以避免显示内容过多导致的显示效果差的问题。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述数据同步方法可以但不限于应用于服务器中,其中,上述服务器为每个账号可以但不限于配置两个账号列表。以第一账号为例说明,可以为第一账号配置第一账号列表和第二账号列表,其中,第二账号列表用于查看第一账号的操作状态的账号列表,可用Observer_hash表示;第一账号列表用于查看第一账号所关注的账号的操作状态的账号列表,可用Visable_hash表示。也就是说,在本实施例中,在同步发送上述操作数据包至使用第一账号的应用客户端,及使用目标账号的应用客户端时,可以但不限于还将上述操作数据包同步发送给关注第一账号的第二账号列表中第二账号的应用客户端。通过将操作数据包同步发送给关注第一账号的第二账号,以使第二账号可以通过所使用的客户端实时获取并显示第一账号执行预定操作后的操作状态,从而实现对数据同步过程进行灵活地选择性控制,而不是对应用中全部账号全量广播操作数据包,从而实现降低传输压力,减少传输流量,达到提高数据同步传输效率的效果。
可选地,在本实施例中,在获取使用第一账号的应用客户端发送的操作请求之前,或者,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端之后,还可以包括但不限于:服务器获取使用第一账号的应用客户端发送的更新请求;在该更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足预定阈值的对象账号,推送给使用第一账号的应用客户端进行显示。
可选地,在本实施例中,在接收到更新请求之后,还可以包括但不限于:获取上述更新请求中携带更新显示条件,其中,该更新显示条件包括以下至少之一:当前视野所显示的同屏账号数量、当前视野所显示的账号所处的位置。根据上述更新显示条件确定从第一账号列表中选择出用于显示在当前视野中的对象账号。
需要说明的是,上述推送给使用第一账号的应用客户端进行显示的账号可以优先从第一账号关注的第一账号列表中选出。其中,当第一账号列表中的账号未达到预定阈值的情况下,还可以选择非第一账号列表中的账号。本实施例中对获取所显示的账号的方式不做任何限定。
例如,如图3所示,仍以游戏应用为例,在游戏应用地图中,第一账号的当前视野为点阵所示区域,第一账号对应的虚拟角色在当前视野中所处的位置为黑色实心圆所在位置。第一账号列表的账号数量为N,其中,当前视野所显示的同屏账号数量为M,N>M,则可以从第一账号列表中选择出M个对象账号显示在当前视野中。
可选地,在本实施例中,上述预定策略可以包括但不限于以下之一:
1)从第一账号列表中选择出满足预定阈值,且与第一账号具有预设账号关联关系的账号;
需要说明的是,从第一账号关注的第一账号列表中优先选择出满足预设账号关联关系的账号。也就是或,具有预设账号关联关系的账号优先显示在当前视野中。其中,当满足预设账号关联关系的账号未达到预定阈值的情况下,可以从第一账号列表中选择其他账号。本实施例中对此不做限定。
2)从第一账号列表中选择出满足预定阈值,且以第一账号所处位置为中心,位于不同半径距离上的账号,作为对象账号。
需要说明的是,为了使得所显示的对象均匀显示,而不过于集中,在本实施例中,还可以根据相对第一账号所处位置的距离,从第一账号关注的第一账号列表中选择出所要显示的对象账号,如相对第一账号的半径距离越小,所选择出的对象账号越多,相对第一账号的半径距离越大,所选择出的对象账号越少。
此外,在本实施例中,还可以但不限于结合上述两种策略,例如在满足预设账号关联关系的账号未达到预定阈值的情况下,还可以再根据第一账号在当前视野中所处的位置,获取相对第一账号所处的位置,位于不同半径距离上的账号作为对象账号。
其中,上述不同半径距离上的账号可以但不限于按照预定比例获取,如在相对第一账号所处的位置的距离越近,所获取到的对象账号的预定比例越大。例如,如图4所示,第一账号在当前视野中所处的位置为黑色实心圆所在位置,对象账号所处的位置为网格圆。在第一个同心圆上的账号的选择比例为50%,在第二个同心圆上的账号的选择比例为30%;第三个同心圆上的账号的选择比例为20%。上述仅是一种示例,满足随着距离的变化,近距离获取到的对象账号较多,远距离获取到的对象账号较少的条件,均包含在本实施例中。
可选地,在本实施例中,还可以实时或定期更新上述第一账号列表。例如,在更新第一账号列表时,第一账号列表中增加了新的账号ID-n,则账号ID-n的Observer_hash列表中将增加第一账号的账号标识ID-1;而第一账号列表中删除了账号ID-m,则账号ID-m的Observer_hash列表中将删除第一账号的账号标识ID-1,从而实现实时调整更新第一账号列表,并保证不同账号对应的观察账号列表(Observer_hash)和可视账号列表(Visable_hash)的准确性和对称性。
可选地,在本实施例中,在响应操作请求生成操作数据包时,还包括:获取与操作数据包对应的操作状态信息,其中,操作状态信息用于指示第一账号及目标账号在预定操作后得到的关键状态。
需要说明的是,由于操作数据包可以但不限于选择性同步至使用第一账号的应用客户端,使用第二账号(Observer_hash中用于显示第一账号的操作状态的观察账号)的应用客户端以及使用目标账号的应用客户端,而不再同步至其他账号进行显示,因而,为了使关注目标账号但未关注第一账号的观察账号可以显示目标账号的状态变化,在本实施例中,可以但不限于将上述操作状态信息发送至用于显示目标账号的操作状态的第三账号列表中的第三账号所使用的应用客户端。其中,上述操作状态信息可以包括但不限于与预定操作相匹配用于指示操作效果的状态,例如占用较大传输带宽的血量变化状态。
可选地,在本实施例中,在发送上述操作状态信息时,还可以包括但不限于:
1)在操作状态信息指示为第一类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号列表中的第二账号所使用的应用客户端;
2)在操作状态信息指示为第二类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,并将操作状态信息按照预定条件发送至部分或全部第二账号所使用的应用客户端,其中,预定条件包括以下至少之一:按照预定周期发送,在操作状态信息发生变化时发送;
其中,第一类关键操作的优先级高于第二类关键操作。
具体结合图5所示步骤S502-S506(含S506-1至S506-3)进行说明:
S502,使用第一账号的应用客户端502向服务器504发送操作请求。例如,该操作请求可以为第一账号的技能释放请求,用于请求对目标账号执行释放技能的操作,以技能释放请求包形式发送给服务器504。服务器504对接收到的操作请求(如技能释放请求包)做合法性验证,在验证通过的情况下,执行步骤S504,否则向使用第一账号的应用客户端502下发请求失败原因。
S504,服务器504生成操作数据包。例如,服务器可以根据上述请求释放的技能的生效时间和生效范围,以及释放点的位置,计算该技能所影响到的目标账号。并对这些目标账号一一进行效果计算,并生成对应的效果事件。例如,对于伤害类技能,会对每个目标账号按照上述第一账号所释放的技能的攻击力,目标账号的防御力等信息计算出目标账号受到的总伤害数值,以计算出目标账号的血量丢失情况,并生成目标账号的伤害事件。此外,若目标账号血量值降为0,则说明该目标账号已被击杀,则生成目标账号的死亡事件。上述技能释放结束时,再生成结束事件。根据上述计算后的效果事件、结束事件等生成携带各个账号的操作状态的操作数据包,其中,操作数据包中需要同步给第一账号的可以为技能释放单播包,需要同步给目标账号及第二账号的可以为技能释放广播包。
需要说明的是,在生成操作数据包的同时,还可以但不限于获取操作状态信息,其中,该操作状态信息用于指示第一账号及目标账号在执行预定操作后的状态。例如,死亡事件等重要时间的状态,需以操作状态信息的形式,发送给使用第一账号的应用客户端,使用目标账号的应用客户端,以及关注第一账号的第二账号所使用的应用客户端,和关注目标账号的第三账号所使用的应用客户端。其中,在本实施例中,上述操作状态信息可以但不限于同步发送给上述应用客户端,也可以但不限于定时发送给上述应用客户端。
S506-1,同步发送操作数据包至使用第一账号的应用客户端502,如将技能释放单播包同步给使用第一账号的应用客户端502。
S506-2,同步发送操作数据包至使用目标账号的应用客户端506,及使用第二账号列表中的第二账号的应用客户端508,如将技能释放广播包同步给使用目标账号的应用客户端506,以及使用第一账号在observer_hash(第二账号列表)中的第二账号的应用客户端508。
例如,如图6所示,在当前视野中显示的账号所控制的虚拟角色中包括:虚拟角色A至虚拟角色D,其中,虚拟角色A(使用第一账号)对所显示虚拟角色B(使用目标账号)和虚拟角色C(使用目标账号)执行预定操作,而对虚拟角色D不执行预定操作(如攻击操作)。服务器响应上述操作的操作请求生成操作数据包,并按照上述同步方法同步给虚拟角色A所在应用客户端,虚拟角色B和虚拟角色C所在应用客户端,以达到选择性同步操作数据,减少数据传输量,提高数据同步效率。此外,与上述预定操作对应的操作状态信息,如,虚拟角色B和虚拟角色C在接受上述预定操作后的状态,如血量减少值等,也将发送给观察虚拟角色B和虚拟角色C的账号所使用的应用客户端;此外,上述操作状态信息也可发送给虚拟角色A所在应用客户端,虚拟角色B和虚拟角色C所在应用客户端,以及观察虚拟角色A的账号所使用的应用客户端。
通过本申请提供的实施例,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率。
作为一种可选的方案,在获取使用第一账号的应用客户端发送的操作请求之前,或者,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端之后,还包括:
S1,获取使用第一账号的应用客户端发送的更新请求,其中,更新请求用于请求更新当前视野所显示的账号;
S2,在更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足预定阈值的对象账号,其中,第一账号通过所使用的应用客户端显示第一账号列表中所包含的账号的操作状态;
S3,将选择出的对象账号推送给使用第一账号的应用客户端,并显示在当前视野中。
可选地,在本实施例中,在接收到更新请求之后,还可以包括但不限于:获取上述更新请求中携带更新显示条件,其中,该更新显示条件包括以下至少之一:当前视野所显示的同屏账号数量、当前视野所显示的账号所处的位置。根据上述更新显示条件确定从第一账号列表中选择出用于显示在当前视野中的对象账号。
假设更新显示条件指示当前视野所显示的同屏账号数量为P,则从在当前视野内显示且属于第一账号列表的账号中优先选择出数量为P的账号作为对象账号,推送给第一账号的应用客户端进行显示。此外,在当前视野内显示且属于第一账号列表的账号的数量不满足数量P的情况下,也可以选择非第一账号列表中的账号作为所要显示的账号。本实施例中对获取所显示的账号的方式不做任何限定。
可选地,在本实施例中,在当前视野内显示且属于第一账号列表的账号的数量大于等于同屏账号数量P的情况下,按照预定策略选择出属于第一账号列表中的对象账号包括以下至少之一:
1)从第一账号列表中选择出满足预定阈值,且与第一账号具有预设账号关联关系的账号,作为对象账号,其中,预设账号关联关系包括:敌对账号、合作账号;
需要说明的是,在具有预设账号关联关系的账号的数量满足预定阈值(如同屏账号数量)的情况下,优先选择具有预设账号关联关系的账号,在不满足预定阈值(如同屏账号数量)的情况下,也可以从第一账号列表中选择其他账号。本实施例中对此不做限定。其中,上述预设账号关联关系可以包括但不限于:虚拟夫妻关系、虚拟合作关系(如战队或联盟)、虚拟敌对关系(如仇人或竞争对手)等等。上述仅是一种示例,本实施例中对此不做任何限定。
2)从第一账号列表中选择出满足预定阈值,且以第一账号所处位置为中心,位于不同半径距离上的账号,作为对象账号,其中,半径距离越小,所选择出的对象账号的数量越多。
可选地,在本实施例中,还可以在所选择的第一账号列表中的对象账号可以但不限于与第一账号所处的位置相关联,以使当前视野内所选择显示的第一账号列表中的对象账号均匀显示,保证显示的真实性。
此外,在本实施例中,还可以但不限于结合上述两种策略,在当前视野内显示且属于第一账号列表的账号的数量大于上述同屏账号数量P的情况下,则服务器可优先选择与第一账号具有预设账号关联关系的账号作为第一账号列表中的部分所要显示的对象账号;进一步,服务器可以再根据第一账号所处位置,选择位于不同半径距离上的账号作为另一部分所要显示的对象账号。也就是说,在上述预定策略中,可以但不限于以策略1)的优先级高于策略2)的优先级。
可选地,在本实施例中,不同半径距离上的账号可以但不限于按照预定比例获取,如在相对第一账号所处的位置的半径距离越近,所获取到的对象账号的预定比例越大。
例如,如图4所示,第一账号在当前视野中所处的位置为黑色实心圆所在位置,在第一个同心圆上的账号的选择比例为50%,在第二个同心圆上的账号的选择比例为30%;第三个同心圆上的账号的选择比例为20%。例如,如图4所示,按照上述预定策略选择出的对象账号所处的位置可以但不限于为图4所示网格圆所处的位置。也就是说,不能只选择近距离的账号作为对象账号,以避免显示的真实性较低、显示内容过于繁复的问题。
进一步,假设仍以游戏应用为例进行说明,在游戏应用的地图中,第一账号的当前视野为点阵所示区域,第一账号在当前视野中所处的位置为黑色实心圆所在位置W。其中,服务器将地图分割为一个一个正方形(可称作AROUND),每个正方形(可称作AROUND)边长n米,当前视野是以黑色实心圆所在位置为中心的5×5格子方阵。服务器在获取到上述使用第一账号的应用客户端的更新请求后,可按照上述过程获取所显示的对象账号(如图4所示网格圆标识)。
通过本申请提供的实施例,在获取到使用第一账号的应用客户端发送的用于请求更新当前视野所显示的账号的更新请求之后,在所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出用于推送显示的对象账号,从而实现优先从第一账号列表中选出用于显示在使用第一账号的应用客户端的当前视野中的账号,以使使用第一账号的应用客户端可以直观地显示所关注账号的操作状态,达到简化显示界面的目的,而无需显示其他账号的操作状态,此外还将减少数据同步传输帧率,进而实现提高数据同步效率的效果。
作为一种可选的方案,在根据预定策略从第一账号列表中选择出满足预定阈值的对象账号之前,还包括:
S1,更新第一账号列表,其中,在第一账号列表中新增或删除预定账号的情况下,在预定账号所对应的观察账号列表中新增或删除第一账号的账号标识,观察账号列表中的账号用于通过所使用的应用客户端显示预定账号的操作状态。
可选地,在本实施例中,还可以实时或定期更新上述第一账号列表。其中,根据上述实施例,服务器为每个账号配置了两个账号列表,以第一账号为例包括:用于查看第一账号的操作状态的第二账号列表(Observer_hash表示);用于查看第一账号所关注的账号的操作状态的第一账号列表(Visable_hash表示)。为了保证不同账号之间账号列表内容的一致性及对称性,在更新第一账号列表中账号的同时,还将同时更新该账号关联的观察账号列表。
例如,在更新第一账号列表的过程中,若第一账号列表中增加了新的账号ID-n时,则用于显示账号ID-n的操作状态的观察账号列表(即Observer_hash)中,也将增加第一账号的账号标识ID-1,以表示账号ID-n受账号ID-1的观察关注;而在第一账号列表中删除了账号ID-m时,则用于显示账号ID-n的操作状态的观察账号列表(即Observer_hash)中将删除第一账号的账号标识ID-1,以表示账号ID-n不再受账号ID-1的观察关注。通过上述方式更新第一账号列表,同时更新第一账号列表中所含账号的观察账号列表,以保证不同账号对应的账号列表中的数据的准确性和对称性。
通过本申请提供的实施例,通过同步更新第一账号列表以及第一账号列表中的账号的观察账号列表,从而实现在数据同步的过程中,保证在不同账号之间数据的一致性和对称性,进而达到保证根据账号列表控制数据同步的准确性。
作为一种可选的方案,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,包括:
S1,将操作数据包同步发送至使用第二账号列表中的第二账号的应用客户端,其中,第二账号用于通过所使用的应用客户端显示第一账号的操作状态。
需要说明的是,在本实施例中,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,还可以选择同步至使用第二账号列表中的第二账号的应用客户端,以使观察第一账号的第二账号也可以实时获取到第一账号的操作状态。
具体结合图7所示进行说明,假设仍以游戏应用为例进行说明,在游戏应用地图中,第一账号的当前视野为点阵所示区域,第一账号所控制虚拟角色在当前视野中所处位置为黑色实心圆所在位置,当前视野中所显示的对象账号所控制虚拟角色的位置为图7所示网格圆所在位置。在获取到使用第一账号的应用客户端发送的操作请求后,服务器可获知第一账号对目标账号(如图7所示为空心圆)执行了预定操作(如图6所示攻击操作)。服务器可根据操作请求生成对应的操作数据包。
例如,以操作请求为技能释放请求为例,如虚拟角色A(第一账号所控制虚拟角色)对虚拟角色B(目标账号所控制虚拟角色)和虚拟角色C(目标账号所控制虚拟角色)释放攻击技能,则服务器可根据虚拟角色A所释放的攻击技能的攻击力,目标账号的防御力等信息计算出目标账号受到的伤害数值,实现操作效果计算。假设虚拟角色A攻击力100,虚拟角色B受到伤害60,虚拟角色C受到伤害40,根据上述计算结果生成操作数据包,其中,该操作数据包中可以包括上述操作过程后各个账号的操作状态,如虚拟角色A对应的第一账号在攻击后产生位移10,虚拟角色B对应的目标账号原剩余血量50,受到攻击后血量不足导致死亡,而虚拟角色C对应的目标账号原剩余血量100,受到攻击后剩余血量为60。
进一步,服务器可将上述操作数据包同步发送给释放该攻击技能的使用第一账号的应用客户端,接受该攻击技能的使用目标账号的应用客户端,及观察第一账号的第二账号列表(即Observer_hash)中的第二账号所使用的应用客户端。
通过本申请提供的实施例,将操作数据包同步发送给执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端,从而实现将当前视野中第一账号对目标账号执行预定操作后的操作状态,选择性同步给部分账号进行显示,而不再全量广播,以达到降低传输帧率,实现提高数据同步效率的效果。
作为一种可选的方案,在响应操作请求生成操作数据包时,还包括:
S1,获取与操作数据包对应的操作状态信息,其中,操作状态信息用于指示第一账号及目标账号在预定操作后得到的关键状态。
需要说明的是,在本实施例中,可以将执行预定操作后得到的关键状态的信息,作为与预定操作关联的操作状态信息,从操作数据包分离,单独同步给已关注目标账号而未关注第一账号的账号所使用的客户端。其中,操作状态信息的数据量小于操作数据包的操作量,通过分离出上述操作状态信息,单独选择性同步给部分账号,将大大减少数据传输量,降低传输帧率,进一步保证数据同步效率。
此外,需要说明的是,在本实施例中,上述关键状态可以但不限于用于指示预定操作后得到一些重要事件,其中,该重要事件可以包括但不限于:虚拟角色死亡事件、虚拟角色隐身事件、虚拟角色血量变化事件、虚拟角色位移变化事件等等。也就是说,当虚拟角色完成预定操作后,发生关键状态明显变化时,除了将包含全部操作数据的操作数据包同步给执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端之外,还可以但不限于将上述关键状态对应的操作状态信息,单独选择性同步给已关注目标账号而未关注第一账号的账号所使用的客户端。从而使已关注目标账号而未关注第一账号的账号所使用的客户端可以同步显示目标账号的关键状态变化情况。
通过本申请提供的实施例,通过分离操作状态信息,以单独进行选择性同步,从而减少这部分同步账号的数据传输量,以降低传输帧率,进一步保证数据同步的效率。
作为一种可选的方案,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,还包括:
S1,将操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,其中,第三账号通过所使用的应用客户端显示目标账号的操作状态。
需要说明的是,由于操作数据包选择性同步给了执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端,但对于关注目标账号而未关注第一账号的账号(如第三账号列表中的第三账号),将因无法再获取到操作数据包,导致无法获取所关注的目标账号的状态变化。因而,在本实施例中提供,将与操作数据包对应的操作状态信息同步给上述第三账号列表中的第三账号所使用的应用客户端进行显示。
进一步,在本实施例中,对于第三账号列表中的第三账号,也可以对其选择性发送。也就是说,可以实时同步操作状态信息给用于观察的第三账号,以使关注目标账号的第三账号也可以实时观察到目标账号关键状态的变化;此外,也可以在操作状态信息发生变化或到达预定周期的情况下,再通知用于观察的第三账号,以减少广播数据量,保证数据传输效率。
可选地,在本实施例中,上述操作状态信息也可以但不限于单独发送给上述使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端。也就是说,操作数据包和操作状态信息可以同步发送给相同范围的应用客户端,也可以异步发送,且选择性发送给上述第三账号列表中的第三账号所使用的应用客户端。本实施例中对操作状态信息的发送范围不做任何限定。
通过本申请提供的实施例,通过将操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,以使第三账号也可以同步显示目标账号在预定操作后关键状态的变化,从而实现在选择性同步数据以保证同步效率的同时,还可以确保关联账号可以实时显示关键状态的变化情况。
作为一种可选的方案,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,还包括:
1)在操作状态信息指示为第一类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号列表中的第二账号所使用的应用客户端
2)在操作状态信息指示为第二类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,并将操作状态信息按照预定条件发送至部分或全部第二账号所使用的应用客户端,其中,预定条件包括以下至少之一:按照预定周期发送,在操作状态信息发生变化时发送;
其中,第一类关键操作的优先级高于第二类关键操作。
需要说明的是,在本实施例中,上述第一类关键操作可以但不限于针对第一重要事件,其中,该第一重要事件可以包括但不限于:虚拟角色死亡事件、虚拟角色隐身事件、虚拟角色位移变化事件等等。上述第二类关键操作可以但不限于针对第二重要事件,其中,该第二重要事件可以包括但不限于:虚拟角色血量变化事件。
具体结合以下示例进行说明,假设仍以图7所示为例进行说明,以操作请求为技能释放请求为例,如虚拟角色A(第一账号所控制虚拟角色)对虚拟角色B(目标账号所控制虚拟角色)和虚拟角色C(目标账号所控制虚拟角色)释放攻击技能,进一步假设虚拟角色A攻击力100,虚拟角色B受到伤害60,虚拟角色C受到伤害40,根据上述计算结果生成操作数据包,其中,该操作数据包中可以包括上述操作过程后各个账号的操作状态,如虚拟角色B对应的目标账号原剩余血量50,受到攻击后血量不足导致死亡(生成死亡事件),而虚拟角色C对应的目标账号原剩余血量100,受到攻击后剩余血量为60(生成血量变化事件)。
基于上述假设,虚拟角色B在受到攻击后将生成死亡事件(即第一重要事件)。根据上述第一重要事件生成操作状态信息,可以将上述操作状态信息同步给关注虚拟角色B对应的目标账号的观察账号列表中的账号(如第三账号)所使用的应用客户端。此外,还可以将该操作状态信息同步发送给使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号所使用的应用客户端,从而实现在已选择的账号范围内进行广播。
进一步,虚拟角色C在受到攻击后将生成血量变化事件(即第二重要事件)。根据上述第二重要事件生成操作状态信息,可以将上述操作状态信息同步给关注虚拟角色C对应的目标账号的观察账号列表中的账号(如第三账号)所使用的应用客户端。此外,还可以将该操作状态信息发送给使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号所使用的应用客户端。其中,针对将该操作状态信息发送给第二账号列表中第二账号所使用的客户端可以包括但不限于以下方式:
1)按照预定周期发送;
2)在操作状态信息发生变化时发送。
需要说明的是,上述操作状态信息量小于操作数据包,优先发送给未收到操作数据包的第三账号列表中的第三账号。此外,还可以再发送给执行操作使用第一账号的应用客户端,以及接受操作使用目标账号的应用客户端。进一步,对于第二账号列表中的第二账号,可以对其选择性发送,如按照预定周期定时广播、或在发生变化时广播。也就是说,只需定期发送变化通知,而无需实时同步,从而达到减少操作数据包的同步数量,节省应用客户端所在终端的流量和电量。
通过本申请提供的实施例,通过区分操作状态信息的类型,以针对不同类型,配置不同发送方式,从而实现降低传输帧率,达到减小终端的CPU处理负荷、传输流量及传输压力,进而达到提高数据同步效率的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一方面,还提供了一种用于实施上述数据同步的数据同步装置,如图8所示,该装置包括:
1)第一获取单元802,用于获取使用第一账号的应用客户端发送的操作请求,其中,操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;
2)生成单元804,用于响应操作请求生成操作数据包;
3)第一同步单元806,用于将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端。
可选地,在本实施例中,上述数据同步装置可以但不限于应用于终端应用中,如游戏应用,其中上述游戏应用可以包括但不限于以下至少之一:二维(Two Dimension,简称2D)游戏应用、三维(Three Dimension,简称3D)游戏应用、虚拟现实(Virtual Reality,简称VR)游戏应用、增强现实(Augmented Reality,简称AR)游戏应用、混合现实(MixedReality,简称MR)游戏应用。其中,在上述游戏应用中可以包括但不限于与所使用账号对应的虚拟角色对象。例如,应用于大型多人在线角色扮演游戏(Massive(或Massively)Multiplayer Online Role-Playing Game,简称MMORPG)的玩家对抗(Player Vs Player,简称PVP)游戏过程中。以上只是一种示例,本实施例对此不作任何限定。
需要说明的是,在本实施例中,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,而无需将上述同步数据包广播发送给第一账号当前视野内的全部账号,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率,保证应用客户端运行的流畅性。
可选地,在本实施例中,以游戏应用为例,上述第一账号对目标账号所执行的预定操作可以包括但不限于:第一账号对目标账号释放技能所执行的操作,例如:攻击技能、防守技能、移动技能、隐身技能等等。上述仅是一种示例,本实施例中对此不做任何限定。
其中,上述预定操作对应的操作数据包可以包括但不限于携带有第一账号的标识、第一账号执行上述预定操作的攻击数值以及第一账号执行上述预定操作后的状态变化,目标账号的标识、目标账号接受预定操作后的伤害数值,以及目标账号接受预定操作后的状态变化。例如,上述状态变化可以包括但不限于通过以下方式表征:血量变化、位移距离、是否死亡等等。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,响应操作请求生成操作数据包可以包括但不限于:服务器响应上述获取到的操作请求对执行上述预定操作后的第一账号和目标账号进行对应的结果运算,以利用运算结果生成上述操作数据包。例如,假设第一账号对应的虚拟角色所要执行的预定操作为攻击操作,该攻击操作的攻击力为100,在所显示的账号中接受该攻击操作的目标账号包括两个账号,其中,第一个账号A对应的虚拟角色受到的伤害值为40,第二个账号B对应的虚拟角色受到的伤害值为60。进一步假设上述数值以血量表征,则服务器可以计算出,基于第一个账号A对应的虚拟角色的血量剩余值为30,30-40=-10,也就是说,第一个账号A对应的虚拟角色已经死亡;而基于第二个账号B对应的虚拟角色的血量剩余值为150,150-60=90,也就是说,第二个账号B对应的虚拟角色还将继续存活。根据上述运算结果生成第一账号及目标账号的操作数据包,并将该操作数据包同步发送至释放技能的使用第一账号的应用客户端,以及接受技能的使用目标账号的应用客户端。从而实现将根据该预定操作所生成的操作数据包选择性同步给使用第一账号的应用客户端和使用目标账号的应用客户端,而无需同步给当前视野中所显示的使用其他账号的应用客户端,以减少数据传输,达到提高数据同步传输效率的目的。此外,选择性同步给部分账号后,还将使得账号通过所使用的应用客户端显示简化后的显示界面,以避免显示内容过多导致的显示效果差的问题。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述数据同步方法可以但不限于应用于服务器中,其中,上述服务器为每个账号可以但不限于配置两个账号列表。以第一账号为例说明,可以为第一账号配置第一账号列表和第二账号列表,其中,第二账号列表用于查看第一账号的操作状态的账号列表,可用Observer_hash表示;第一账号列表用于查看第一账号所关注的账号的操作状态的账号列表,可用Visable_hash表示。也就是说,在本实施例中,在同步发送上述操作数据包至使用第一账号的应用客户端,及使用目标账号的应用客户端时,可以但不限于还将上述操作数据包同步发送给关注第一账号的第二账号列表中第二账号的应用客户端。通过将操作数据包同步发送给关注第一账号的第二账号,以使第二账号可以通过所使用的客户端实时获取并显示第一账号执行预定操作后的操作状态,从而实现对数据同步过程进行灵活地选择性控制,而不是对应用中全部账号全量广播操作数据包,从而实现降低传输压力,减少传输流量,达到提高数据同步传输效率的效果。
可选地,在本实施例中,在获取使用第一账号的应用客户端发送的操作请求之前,或者,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端之后,还可以包括但不限于:服务器获取使用第一账号的应用客户端发送的更新请求;在该更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足预定阈值的对象账号,推送给使用第一账号的应用客户端进行显示。
可选地,在本实施例中,在接收到更新请求之后,还可以包括但不限于:获取上述更新请求中携带更新显示条件,其中,该更新显示条件包括以下至少之一:当前视野所显示的同屏账号数量、当前视野所显示的账号所处的位置。根据上述更新显示条件确定从第一账号列表中选择出用于显示在当前视野中的对象账号。
需要说明的是,上述推送给使用第一账号的应用客户端进行显示的账号可以优先从第一账号关注的第一账号列表中选出。其中,当第一账号列表中的账号未达到预定阈值的情况下,还可以选择非第一账号列表中的账号。本实施例中对获取所显示的账号的方式不做任何限定。
例如,如图3所示,仍以游戏应用为例,在游戏应用地图中,第一账号的当前视野为点阵所示区域,第一账号对应的虚拟角色在当前视野中所处的位置为黑色实心圆所在位置。第一账号列表的账号数量为N,其中,当前视野所显示的同屏账号数量为M,N>M,则可以从第一账号列表中选择出M个对象账号显示在当前视野中。
可选地,在本实施例中,上述预定策略可以包括但不限于以下之一:
1)从第一账号列表中选择出满足预定阈值,且与第一账号具有预设账号关联关系的账号;
需要说明的是,从第一账号关注的第一账号列表中优先选择出满足预设账号关联关系的账号。也就是或,具有预设账号关联关系的账号优先显示在当前视野中。其中,当满足预设账号关联关系的账号未达到预定阈值的情况下,可以从第一账号列表中选择其他账号。本实施例中对此不做限定。
2)从第一账号列表中选择出满足预定阈值,且以第一账号所处位置为中心,位于不同半径距离上的账号,作为对象账号。
需要说明的是,为了使得所显示的对象均匀显示,而不过于集中,在本实施例中,还可以根据相对第一账号所处位置的距离,从第一账号关注的第一账号列表中选择出所要显示的对象账号,如相对第一账号的半径距离越小,所选择出的对象账号越多,相对第一账号的半径距离越大,所选择出的对象账号越少。
此外,在本实施例中,还可以但不限于结合上述两种策略,例如在满足预设账号关联关系的账号未达到预定阈值的情况下,还可以再根据第一账号在当前视野中所处的位置,获取相对第一账号所处的位置,位于不同半径距离上的账号作为对象账号。
其中,上述不同半径距离上的账号可以但不限于按照预定比例获取,如在相对第一账号所处的位置的距离越近,所获取到的对象账号的预定比例越大。例如,如图4所示,第一账号在当前视野中所处的位置为黑色实心圆所在位置,对象账号所处的位置为网格圆。在第一个同心圆上的账号的选择比例为50%,在第二个同心圆上的账号的选择比例为30%;第三个同心圆上的账号的选择比例为20%。上述仅是一种示例,满足随着距离的变化,近距离获取到的对象账号较多,远距离获取到的对象账号较少的条件,均包含在本实施例中。
可选地,在本实施例中,还可以实时或定期更新上述第一账号列表。例如,在更新第一账号列表时,第一账号列表中增加了新的账号ID-n,则账号ID-n的Observer_hash列表中将增加第一账号的账号标识ID-1;而第一账号列表中删除了账号ID-m,则账号ID-m的Observer_hash列表中将删除第一账号的账号标识ID-1,从而实现实时调整更新第一账号列表,并保证不同账号对应的观察账号列表(Observer_hash)和可视账号列表(Visable_hash)的准确性和对称性。
可选地,在本实施例中,在响应操作请求生成操作数据包时,还包括:获取与操作数据包对应的操作状态信息,其中,操作状态信息用于指示第一账号及目标账号在预定操作后得到的关键状态。
需要说明的是,由于操作数据包可以但不限于选择性同步至使用第一账号的应用客户端,使用第二账号(Observer_hash中用于显示第一账号的操作状态的观察账号)的应用客户端以及使用目标账号的应用客户端,而不再同步至其他账号进行显示,因而,为了使关注目标账号但未关注第一账号的观察账号可以显示目标账号的状态变化,在本实施例中,可以但不限于将上述操作状态信息发送至用于显示目标账号的操作状态的第三账号列表中的第三账号所使用的应用客户端。其中,上述操作状态信息可以包括但不限于与预定操作相匹配用于指示操作效果的状态,例如占用较大传输带宽的血量变化状态。
可选地,在本实施例中,在发送上述操作状态信息时,还可以包括但不限于:
1)在操作状态信息指示为第一类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号列表中的第二账号所使用的应用客户端;
2)在操作状态信息指示为第二类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,并将操作状态信息按照预定条件发送至部分或全部第二账号所使用的应用客户端,其中,预定条件包括以下至少之一:按照预定周期发送,在操作状态信息发生变化时发送;
其中,第一类关键操作的优先级高于第二类关键操作。
通过本申请提供的实施例,在获取到第一账号发送的操作请求之后,其中,该操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;响应该操作请求生成操作数据包,并将该操作数据包同步发送至上述使用第一账号的应用客户端,以及使用目标账号的应用客户端。从而实现将第一账号对目标账号执行预定操作所生成的操作数据包,选择性地同步发送给第一账号所使用的应用客户端和目标账号所使用的应用客户端,以减少数据同步的账号数量,降低数据同步传输的帧率,进而达到提高数据同步的效率。
作为一种可选的方案,还包括:
1)第二获取单元,用于在获取使用第一账号的应用客户端发送的操作请求之前,或者,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端之后,获取使用第一账号的应用客户端发送的更新请求,其中,更新请求用于请求更新当前视野所显示的账号;
2)选择单元,用于在更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足预定阈值的对象账号,其中,第一账号通过所使用的应用客户端显示第一账号列表中所包含的账号的操作状态;
3)推送单元,用于将选择出的对象账号推送给使用第一账号的应用客户端,并显示在当前视野中。
可选地,在本实施例中,在接收到更新请求之后,还可以包括但不限于:获取上述更新请求中携带更新显示条件,其中,该更新显示条件包括以下至少之一:当前视野所显示的同屏账号数量、当前视野所显示的账号所处的位置。根据上述更新显示条件确定从第一账号列表中选择出用于显示在当前视野中的对象账号。
假设更新显示条件指示当前视野所显示的同屏账号数量为P,则从在当前视野内显示且属于第一账号列表的账号中优先选择出数量为P的账号作为对象账号,推送给第一账号的应用客户端进行显示。此外,在当前视野内显示且属于第一账号列表的账号的数量不满足数量P的情况下,也可以选择非第一账号列表中的账号作为所要显示的账号。本实施例中对获取所显示的账号的方式不做任何限定。
可选地,在本实施例中,在当前视野内显示且属于第一账号列表的账号的数量大于等于同屏账号数量P的情况下,选择单元包括包括以下至少之一:
1)第一选择模块,用于从第一账号列表中选择出满足预定阈值,且与第一账号具有预设账号关联关系的账号,作为对象账号,其中,预设账号关联关系包括:敌对账号、合作账号;
需要说明的是,在具有预设账号关联关系的账号的数量满足预定阈值(如同屏账号数量)的情况下,优先选择具有预设账号关联关系的账号,在不满足预定阈值(如同屏账号数量)的情况下,也可以从第一账号列表中选择其他账号。本实施例中对此不做限定。其中,上述预设账号关联关系可以包括但不限于:虚拟夫妻关系、虚拟合作关系(如战队或联盟)、虚拟敌对关系(如仇人或竞争对手)等等。上述仅是一种示例,本实施例中对此不做任何限定。
2)第二选择模块,用于从第一账号列表中选择出满足预定阈值,且以第一账号所处位置为中心,位于不同半径距离上的账号,作为对象账号,其中,半径距离越小,所选择出的对象账号的数量越多。
可选地,在本实施例中,还可以在所选择的第一账号列表中的对象账号可以但不限于与第一账号所处的位置相关联,以使当前视野内所选择显示的第一账号列表中的对象账号均匀显示,保证显示的真实性。
此外,在本实施例中,还可以但不限于结合上述两种策略,在当前视野内显示且属于第一账号列表的账号的数量大于上述同屏账号数量P的情况下,则服务器可优先选择与第一账号具有预设账号关联关系的账号作为第一账号列表中的部分所要显示的对象账号;进一步,服务器可以再根据第一账号所处位置,选择位于不同半径距离上的账号作为另一部分所要显示的对象账号。也就是说,在上述预定策略中,可以但不限于以策略1)的优先级高于策略2)的优先级。
可选地,在本实施例中,不同半径距离上的账号可以但不限于按照预定比例获取,如在相对第一账号所处的位置的半径距离越近,所获取到的对象账号的预定比例越大。
例如,如图4所示,第一账号在当前视野中所处的位置为黑色实心圆所在位置,在第一个同心圆上的账号的选择比例为50%,在第二个同心圆上的账号的选择比例为30%;第三个同心圆上的账号的选择比例为20%。例如,如图4所示,按照上述预定策略选择出的对象账号所处的位置可以但不限于为图4所示网格圆所处的位置。也就是说,不能只选择近距离的账号作为对象账号,以避免显示的真实性较低、显示内容过于繁复的问题。
进一步,假设仍以游戏应用为例进行说明,在游戏应用的地图中,第一账号的当前视野为点阵所示区域,第一账号在当前视野中所处的位置为黑色实心圆所在位置W。其中,服务器将地图分割为一个一个正方形(可称作AROUND),每个正方形(可称作AROUND)边长n米,当前视野是以黑色实心圆所在位置为中心的5×5格子方阵。服务器在获取到上述使用第一账号的应用客户端的更新请求后,可按照上述过程获取所显示的对象账号(如图4所示网格圆标识)。
通过本申请提供的实施例,在获取到使用第一账号的应用客户端发送的用于请求更新当前视野所显示的账号的更新请求之后,在所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出用于推送显示的对象账号,从而实现优先从第一账号列表中选出用于显示在使用第一账号的应用客户端的当前视野中的账号,以使使用第一账号的应用客户端可以直观地显示所关注账号的操作状态,达到简化显示界面的目的,而无需显示其他账号的操作状态,此外还将减少数据同步传输帧率,进而实现提高数据同步效率的效果。
作为一种可选的方案,还包括:
1)更新模块,用于在根据预定策略从第一账号列表中选择出满足预定阈值的对象账号之前,更新第一账号列表,其中,在第一账号列表中新增或删除预定账号的情况下,在预定账号所对应的观察账号列表中新增或删除第一账号的账号标识,观察账号列表中的账号用于通过所使用的应用客户端显示预定账号的操作状态。
可选地,在本实施例中,还可以实时或定期更新上述第一账号列表。其中,根据上述实施例,服务器为每个账号配置了两个账号列表,以第一账号为例包括:用于查看第一账号的操作状态的第二账号列表(Observer_hash表示);用于查看第一账号所关注的账号的操作状态的第一账号列表(Visable_hash表示)。为了保证不同账号之间账号列表内容的一致性及对称性,在更新第一账号列表中账号的同时,还将同时更新该账号关联的观察账号列表。
例如,在更新第一账号列表的过程中,若第一账号列表中增加了新的账号ID-n时,则用于显示账号ID-n的操作状态的观察账号列表(即Observer_hash)中,也将增加第一账号的账号标识ID-1,以表示账号ID-n受账号ID-1的观察关注;而在第一账号列表中删除了账号ID-m时,则用于显示账号ID-n的操作状态的观察账号列表(即Observer_hash)中将删除第一账号的账号标识ID-1,以表示账号ID-n不再受账号ID-1的观察关注。通过上述方式更新第一账号列表,同时更新第一账号列表中所含账号的观察账号列表,以保证不同账号对应的账号列表中的数据的准确性和对称性。
通过本申请提供的实施例,通过同步更新第一账号列表以及第一账号列表中的账号的观察账号列表,从而实现在数据同步的过程中,保证在不同账号之间数据的一致性和对称性,进而达到保证根据账号列表控制数据同步的准确性。
作为一种可选的方案,还包括:
1)第二同步单元,用于在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,将操作数据包同步发送至使用第二账号列表中的第二账号的应用客户端,其中,第二账号用于通过所使用的应用客户端显示第一账号的操作状态。
需要说明的是,在本实施例中,在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,还可以选择同步至使用第二账号列表中的第二账号的应用客户端,以使观察第一账号的第二账号也可以实时获取到第一账号的操作状态。
具体结合图7所示进行说明,假设仍以游戏应用为例进行说明,在游戏应用地图中,第一账号的当前视野为点阵所示区域,第一账号所控制虚拟角色在当前视野中所处位置为黑色实心圆所在位置,当前视野中所显示的对象账号所控制虚拟角色的位置为图7所示网格圆所在位置。在获取到使用第一账号的应用客户端发送的操作请求后,服务器可获知第一账号对目标账号(如图7所示为空心圆)执行了预定操作(如图6所示攻击操作)。服务器可根据操作请求生成对应的操作数据包。
例如,以操作请求为技能释放请求为例,如虚拟角色A(第一账号所控制虚拟角色)对虚拟角色B(目标账号所控制虚拟角色)和虚拟角色C(目标账号所控制虚拟角色)释放攻击技能,则服务器可根据虚拟角色A所释放的攻击技能的攻击力,目标账号的防御力等信息计算出目标账号受到的伤害数值,实现操作效果计算。假设虚拟角色A攻击力100,虚拟角色B受到伤害60,虚拟角色C受到伤害40,根据上述计算结果生成操作数据包,其中,该操作数据包中可以包括上述操作过程后各个账号的操作状态,如虚拟角色A对应的第一账号在攻击后产生位移10,虚拟角色B对应的目标账号原剩余血量50,受到攻击后血量不足导致死亡,而虚拟角色C对应的目标账号原剩余血量100,受到攻击后剩余血量为60。
进一步,服务器可将上述操作数据包同步发送给释放该攻击技能的使用第一账号的应用客户端,接受该攻击技能的使用目标账号的应用客户端,及观察第一账号的第二账号列表(即Observer_hash)中的第二账号所使用的应用客户端。
通过本申请提供的实施例,将操作数据包同步发送给执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端,从而实现将当前视野中第一账号对目标账号执行预定操作后的操作状态,选择性同步给部分账号进行显示,而不再全量广播,以达到降低传输帧率,实现提高数据同步效率的效果。
作为一种可选的方案,还包括:
1)第三获取单元,用于在响应操作请求生成操作数据包时,获取与操作数据包对应的操作状态信息,其中,操作状态信息用于指示第一账号及目标账号在预定操作后得到的关键状态。
需要说明的是,在本实施例中,可以将执行预定操作后得到的关键状态的信息,作为与预定操作关联的操作状态信息,从操作数据包分离,单独同步给已关注目标账号而未关注第一账号的账号所使用的客户端。其中,操作状态信息的数据量小于操作数据包的操作量,通过分离出上述操作状态信息,单独选择性同步给部分账号,将大大减少数据传输量,降低传输帧率,进一步保证数据同步效率。
此外,需要说明的是,在本实施例中,上述关键状态可以但不限于用于指示预定操作后得到一些重要事件,其中,该重要事件可以包括但不限于:虚拟角色死亡事件、虚拟角色隐身事件、虚拟角色血量变化事件、虚拟角色位移变化事件等等。也就是说,当虚拟角色完成预定操作后,发生关键状态明显变化时,除了将包含全部操作数据的操作数据包同步给执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端之外,还可以但不限于将上述关键状态对应的操作状态信息,单独选择性同步给已关注目标账号而未关注第一账号的账号所使用的客户端。从而使已关注目标账号而未关注第一账号的账号所使用的客户端可以同步显示目标账号的关键状态变化情况。
通过本申请提供的实施例,通过分离操作状态信息,以单独进行选择性同步,从而减少这部分同步账号的数据传输量,以降低传输帧率,进一步保证数据同步的效率。
作为一种可选的方案,还包括:
1)第三同步单元,用于在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,将操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,其中,第三账号通过所使用的应用客户端显示目标账号的操作状态。
需要说明的是,由于操作数据包选择性同步给了执行预定操作的使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端,但对于关注目标账号而未关注第一账号的账号(如第三账号列表中的第三账号),将因无法再获取到操作数据包,导致无法获取所关注的目标账号的状态变化。因而,在本实施例中提供,将与操作数据包对应的操作状态信息同步给上述第三账号列表中的第三账号所使用的应用客户端进行显示。
进一步,在本实施例中,对于第三账号列表中的第三账号,也可以对其选择性发送。也就是说,可以实时同步操作状态信息给用于观察的第三账号,以使关注目标账号的第三账号也可以实时观察到目标账号关键状态的变化;此外,也可以在操作状态信息发生变化或到达预定周期的情况下,再通知用于观察的第三账号,以减少广播数据量,保证数据传输效率。
可选地,在本实施例中,上述操作状态信息也可以但不限于单独发送给上述使用第一账号的应用客户端,接受该预定操作使用目标账号的应用客户端,以及关注第一账号的第二账号列表中的第二账号所使用的应用客户端。也就是说,操作数据包和操作状态信息可以同步发送给相同范围的应用客户端,也可以异步发送,且选择性发送给上述第三账号列表中的第三账号所使用的应用客户端。本实施例中对操作状态信息的发送范围不做任何限定。
通过本申请提供的实施例,通过将操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,以使第三账号也可以同步显示目标账号在预定操作后关键状态的变化,从而实现在选择性同步数据以保证同步效率的同时,还可以确保关联账号可以实时显示关键状态的变化情况。
作为一种可选的方案,还包括:
1)第一发送单元,用于在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,在操作状态信息指示为第一类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号列表中的第二账号所使用的应用客户端;
2)第二发送单元,用于在将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端时,在操作状态信息指示为第二类关键操作的情况下,将操作状态信息同步发送至使用第一账号的应用客户端,使用目标账号的应用客户端,并将操作状态信息按照预定条件发送至部分或全部第二账号所使用的应用客户端,其中,预定条件包括以下至少之一:按照预定周期发送,在操作状态信息发生变化时发送;
其中,第一类关键操作的优先级高于第二类关键操作。
需要说明的是,在本实施例中,上述第一类关键操作可以但不限于针对第一重要事件,其中,该第一重要事件可以包括但不限于:虚拟角色死亡事件、虚拟角色隐身事件、虚拟角色位移变化事件等等。上述第二类关键操作可以但不限于针对第二重要事件,其中,该第二重要事件可以包括但不限于:虚拟角色血量变化事件。
具体结合以下示例进行说明,假设仍以图7所示为例进行说明,以操作请求为技能释放请求为例,如虚拟角色A(第一账号所控制虚拟角色)对虚拟角色B(目标账号所控制虚拟角色)和虚拟角色C(目标账号所控制虚拟角色)释放攻击技能,进一步假设虚拟角色A攻击力100,虚拟角色B受到伤害60,虚拟角色C受到伤害40,根据上述计算结果生成操作数据包,其中,该操作数据包中可以包括上述操作过程后各个账号的操作状态,如虚拟角色B对应的目标账号原剩余血量50,受到攻击后血量不足导致死亡(生成死亡事件),而虚拟角色C对应的目标账号原剩余血量100,受到攻击后剩余血量为60(生成血量变化事件)。
基于上述假设,虚拟角色B在受到攻击后将生成死亡事件(即第一重要事件)。根据上述第一重要事件生成操作状态信息,可以将上述操作状态信息同步给关注虚拟角色B对应的目标账号的观察账号列表中的账号(如第三账号)所使用的应用客户端。此外,还可以将该操作状态信息同步发送给使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号所使用的应用客户端,从而实现在已选择的账号范围内进行广播。
进一步,虚拟角色C在受到攻击后将生成血量变化事件(即第二重要事件)。根据上述第二重要事件生成操作状态信息,可以将上述操作状态信息同步给关注虚拟角色C对应的目标账号的观察账号列表中的账号(如第三账号)所使用的应用客户端。此外,还可以将该操作状态信息发送给使用第一账号的应用客户端,使用目标账号的应用客户端,以及第二账号所使用的应用客户端。其中,针对将该操作状态信息发送给第二账号列表中第二账号所使用的客户端可以包括但不限于以下方式:
1)按照预定周期发送;
2)在操作状态信息发生变化时发送。
需要说明的是,上述操作状态信息量小于操作数据包,优先发送给未收到操作数据包的第三账号列表中的第三账号。此外,还可以再发送给执行操作使用第一账号的应用客户端,以及接受操作使用目标账号的应用客户端。进一步,对于第二账号列表中的第二账号,可以对其选择性发送,如按照预定周期定时广播、或在发生变化时广播。也就是说,只需定期发送变化通知,而无需实时同步,从而达到减少操作数据包的同步数量,节省应用客户端所在终端的流量和电量。
通过本申请提供的实施例,通过区分操作状态信息的类型,以针对不同类型,配置不同发送方式,从而实现降低传输帧率,达到减小终端的CPU处理负荷、传输流量及传输压力,进而达到提高数据同步效率的效果。
根据本发明实施例的又一方面,还提供了一种用于实施上述数据同步方法的电子装置。可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。如图9所示,该电子装置包括:一个或多个(图中仅示出一个)处理器902、存储器904、以及传输装置906,以及用户接口908和显示器910。
其中,存储器904可用于存储软件程序以及模块,如本发明实施例中的数据同步方法对应的程序指令/模块,处理器902通过运行存储在存储器904内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据同步方法。存储器904可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器904可进一步包括相对于处理器902远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置906包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置906为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器904用于存储所要同步的操作数据。
其中,具体地,显示器910用于显示上述第一账号、目标账号,以及第一账号对目标账号执行的预定操作;此外,还可以显示第一账号列表中账号的操作状态。用户接口908与显示器910和处理器902连接,用于通过触屏获取操作指令,并发送给处理器处理。
本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置10还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例的又一方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以位于网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取使用第一账号的应用客户端发送的操作请求,其中,操作请求用于指示第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;
S2,响应操作请求生成操作数据包;
S3,将操作数据包同步发送至使用第一账号的应用客户端,及使用目标账号的应用客户端。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种数据同步方法,其特征在于,包括:
获取使用第一账号的应用客户端发送的更新请求,其中,所述更新请求用于请求更新当前视野所显示的账号;
在所述更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足所述预定阈值的对象账号,其中,所述第一账号通过所使用的应用客户端显示所述第一账号列表中所包含的账号的操作状态;
将选择出的所述对象账号推送给使用所述第一账号的所述应用客户端,并显示在所述当前视野中;
获取使用所述第一账号的所述应用客户端发送的操作请求,其中,所述操作请求用于指示所述第一账号请求对所述当前视野所显示的账号中的目标账号执行预定操作;
响应所述操作请求生成操作数据包,并获取与所述操作数据包对应的操作状态信息,其中,所述操作状态信息用于指示所述第一账号及所述目标账号在所述预定操作后得到的关键状态;
将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端;
将所述操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,其中,所述第三账号通过所使用的应用客户端显示所述目标账号的操作状态。
2.根据权利要求1所述的方法,其特征在于,所述根据预定策略从第一账号列表中选择出满足所述预定阈值的对象账号包括:
从所述第一账号列表中选择出满足所述预定阈值,且与所述第一账号具有预设账号关联关系的账号,作为所述对象账号,其中,所述预设账号关联关系包括:敌对账号、合作账号;
从所述第一账号列表中选择出满足所述预定阈值,且以所述第一账号所处位置为中心,位于不同半径距离上的账号,作为所述对象账号,其中,半径距离越小,所选择出的所述对象账号的数量越多。
3.根据权利要求1所述的方法,其特征在于,在所述根据预定策略从第一账号列表中选择出满足所述预定阈值的对象账号之前,还包括:
更新所述第一账号列表,其中,在所述第一账号列表中新增或删除预定账号的情况下,在所述预定账号所对应的观察账号列表中新增或删除所述第一账号的账号标识,所述观察账号列表中的账号用于通过所使用的应用客户端显示所述预定账号的操作状态。
4.根据权利要求1所述的方法,其特征在于,在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,还包括:
将所述操作数据包同步发送至使用第二账号列表中的第二账号的应用客户端,其中,所述第二账号用于通过所使用的应用客户端显示所述第一账号的操作状态。
5.根据权利要求4所述的方法,其特征在于,在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,还包括:
在所述操作状态信息指示为第一类关键操作的情况下,将所述操作状态信息同步发送至使用所述第一账号的应用客户端,使用所述目标账号的应用客户端,以及所述第二账号列表中的所述第二账号所使用的应用客户端;
在所述操作状态信息指示为第二类关键操作的情况下,将所述操作状态信息同步发送至使用所述第一账号的应用客户端,使用所述目标账号的应用客户端,并将所述操作状态信息按照预定条件发送至部分或全部所述第二账号所使用的应用客户端,其中,所述预定条件包括以下至少之一:按照预定周期发送,在所述操作状态信息发生变化时发送;
其中,所述第一类关键操作的优先级高于所述第二类关键操作。
6.一种数据同步装置,其特征在于,包括:
第一获取单元,用于获取使用第一账号的应用客户端发送的操作请求,其中,所述操作请求用于指示所述第一账号请求对当前视野所显示的账号中的目标账号执行预定操作;
生成单元,用于响应所述操作请求生成操作数据包;
第三获取单元,获取与所述操作数据包对应的操作状态信息,其中,所述操作状态信息用于指示所述第一账号及所述目标账号在所述预定操作后得到的关键状态;
第一同步单元,用于将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端;
第三同步单元,用于在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,将所述操作状态信息同步发送至第三账号列表中的第三账号所使用的应用客户端,其中,所述第三账号通过所使用的应用客户端显示所述目标账号的操作状态;
所述装置还包括:第二获取单元,用于在所述获取使用第一账号的应用客户端发送的操作请求之前,或者,在将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端之后,获取使用所述第一账号的所述应用客户端发送的更新请求,其中,所述更新请求用于请求更新所述当前视野所显示的账号;选择单元,用于在所述更新请求所请求更新的账号的数量大于等于预定阈值的情况下,根据预定策略从第一账号列表中选择出满足所述预定阈值的对象账号,其中,所述第一账号通过所使用的应用客户端显示所述第一账号列表中所包含的账号的操作状态;推送单元,用于将选择出的所述对象账号推送给使用所述第一账号的所述应用客户端,并显示在所述当前视野中。
7.根据权利要求6所述的装置,其特征在于,所述选择单元包括:
第一选择模块,用于从所述第一账号列表中选择出满足所述预定阈值,且与所述第一账号具有预设账号关联关系的账号,作为所述对象账号,其中,所述预设账号关联关系包括:敌对账号、合作账号;
第二选择模块,用于从所述第一账号列表中选择出满足所述预定阈值,且以所述第一账号所处位置为中心,位于不同半径距离上的账号,作为所述对象账号,其中,半径距离越小,所选择出的所述对象账号的数量越多。
8.根据权利要求6所述的装置,其特征在于,还包括:
更新模块,用于在所述根据预定策略从第一账号列表中选择出满足所述预定阈值的对象账号之前,更新所述第一账号列表,其中,在所述第一账号列表中新增或删除预定账号的情况下,在所述预定账号所对应的观察账号列表中新增或删除所述第一账号的账号标识,所述观察账号列表中的账号用于通过所使用的应用客户端显示所述预定账号的操作状态。
9.根据权利要求6所述的装置,其特征在于,还包括:
第二同步单元,用于在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,将所述操作数据包同步发送至使用第二账号列表中的第二账号的应用客户端,其中,所述第二账号用于通过所使用的应用客户端显示所述第一账号的操作状态。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一发送单元,用于在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,在所述操作状态信息指示为第一类关键操作的情况下,将所述操作状态信息同步发送至使用所述第一账号的应用客户端,使用所述目标账号的应用客户端,以及所述第二账号列表中的所述第二账号所使用的应用客户端;
第二发送单元,用于在所述将所述操作数据包同步发送至使用所述第一账号的应用客户端,及使用所述目标账号的应用客户端时,在所述操作状态信息指示为第二类关键操作的情况下,将所述操作状态信息同步发送至使用所述第一账号的应用客户端,使用所述目标账号的应用客户端,并将所述操作状态信息按照预定条件发送至部分或全部所述第二账号所使用的应用客户端,其中,所述预定条件包括以下至少之一:按照预定周期发送,在所述操作状态信息发生变化时发送;
其中,所述第一类关键操作的优先级高于所述第二类关键操作。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至5任一项中所述的方法。
12.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行所述权利要求1至5任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711211450.5A CN107911374B (zh) | 2017-11-27 | 2017-11-27 | 数据同步方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711211450.5A CN107911374B (zh) | 2017-11-27 | 2017-11-27 | 数据同步方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107911374A CN107911374A (zh) | 2018-04-13 |
CN107911374B true CN107911374B (zh) | 2020-09-29 |
Family
ID=61849133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711211450.5A Active CN107911374B (zh) | 2017-11-27 | 2017-11-27 | 数据同步方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911374B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109364478B (zh) | 2018-09-07 | 2022-08-23 | 深圳市腾讯信息技术有限公司 | 信息同步方法、装置及存储介质 |
CN109543122B (zh) * | 2018-11-28 | 2021-11-23 | 网易(杭州)网络有限公司 | 内容同步方法、装置、存储介质及电子装置 |
CN110639206A (zh) * | 2019-09-20 | 2020-01-03 | 北京代码乾坤科技有限公司 | 游戏数据同步方法、装置、存储介质及处理器 |
CN111228797B (zh) * | 2020-01-13 | 2021-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机以及可读存储介质 |
CN111494937B (zh) * | 2020-04-17 | 2022-04-01 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制、信息同步方法、装置、设备及介质 |
CN116781716A (zh) * | 2022-03-07 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878119A (zh) * | 2005-06-07 | 2006-12-13 | 华为技术有限公司 | 在线游戏系统实现多媒体信息通信的方法及其系统 |
CN1953456A (zh) * | 2006-10-31 | 2007-04-25 | 中山大学 | 一种混合式网络游戏数据的传输方法及其传输系统 |
CN101068180A (zh) * | 2007-06-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 网络游戏的主控系统、管理系统及管理方法 |
CN101410878A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 从永恒世界游戏内生成虚拟世界事件通知的方法 |
CN103618766A (zh) * | 2013-11-14 | 2014-03-05 | 北京奇虎科技有限公司 | 一种进行网页游戏交互的方法和网页游戏交互服务器 |
CN105031922A (zh) * | 2015-07-07 | 2015-11-11 | 网易(杭州)网络有限公司 | 游戏数据的处理方法、游戏服务端及游戏客户端 |
CN105879391A (zh) * | 2016-04-08 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种游戏中角色的移动控制方法和服务器以及客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120053497A (ko) * | 2005-12-22 | 2012-05-25 | 피케이알 리미티드 | 온라인 게이밍에 관한 개선 |
-
2017
- 2017-11-27 CN CN201711211450.5A patent/CN107911374B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878119A (zh) * | 2005-06-07 | 2006-12-13 | 华为技术有限公司 | 在线游戏系统实现多媒体信息通信的方法及其系统 |
CN101410878A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 从永恒世界游戏内生成虚拟世界事件通知的方法 |
CN1953456A (zh) * | 2006-10-31 | 2007-04-25 | 中山大学 | 一种混合式网络游戏数据的传输方法及其传输系统 |
CN101068180A (zh) * | 2007-06-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 网络游戏的主控系统、管理系统及管理方法 |
CN103618766A (zh) * | 2013-11-14 | 2014-03-05 | 北京奇虎科技有限公司 | 一种进行网页游戏交互的方法和网页游戏交互服务器 |
CN105031922A (zh) * | 2015-07-07 | 2015-11-11 | 网易(杭州)网络有限公司 | 游戏数据的处理方法、游戏服务端及游戏客户端 |
CN105879391A (zh) * | 2016-04-08 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种游戏中角色的移动控制方法和服务器以及客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN107911374A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107911374B (zh) | 数据同步方法和装置、存储介质及电子装置 | |
CN107998655B (zh) | 数据显示方法、装置、存储介质和电子装置 | |
CN111767503A (zh) | 一种游戏数据处理方法、装置、计算机及可读存储介质 | |
CN110496391B (zh) | 信息同步方法及装置 | |
CN101473341A (zh) | 游戏设备间特征的传送 | |
CN109731330B (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
CN110152304B (zh) | 获胜值的确定方法及装置、存储介质及电子装置 | |
CN110585697A (zh) | 一种游戏中的跨服控制方法及装置 | |
CN105407992A (zh) | 图像处理程序、服务器装置、图像处理系统及图像处理方法 | |
CN111228807B (zh) | 虚拟操作对象的控制方法和装置、存储介质及电子装置 | |
US10653961B2 (en) | Systems and methods of controlling game character attributes | |
CN112337090A (zh) | 事件消息的广播方法及装置、存储介质、电子装置 | |
CN111111185A (zh) | 目标动画的播放方法和装置、存储介质及电子装置 | |
KR101404635B1 (ko) | 온라인 게임에서의 드래그 입력 처리 방법 | |
CN113069761B (zh) | 游戏场景中虚拟角色的显示方法、装置及电子设备 | |
CN114082196A (zh) | 游戏资源的控制方法及装置、存储介质、电子装置 | |
CN110898425B (zh) | 信息同步方法和装置、存储介质及电子装置 | |
CN113244609A (zh) | 多画面的显示方法和装置、存储介质及电子设备 | |
CN111195432B (zh) | 对象显示方法和装置、存储介质及电子装置 | |
CN111228805A (zh) | 虚拟操作对象的控制方法和装置、存储介质及电子装置 | |
CN113244615B (zh) | 聊天面板的显示控制方法和装置、存储介质及电子设备 | |
CN106861192B (zh) | 事件执行方法和装置 | |
CN113595878B (zh) | 数据交互方法和装置、存储介质及电子设备 | |
CN112370782B (zh) | 辅助资源显示方法、装置和存储介质及电子设备 | |
CN114452642A (zh) | 游戏画面的显示方法、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |