时间同步方法、装置、电子设备及可读存储介质与流程

专利2022-05-09  98


本申请涉及平台优化、游戏、游戏运营、云技术以及区块链等领域,尤其涉及一种时间同步方法、装置、电子设备及可读存储介质。



背景技术:

目前,随着互联网技术的发展,在为用户服务时,并不局限于单个服务器,还可以由服务器集群为用户提供服务,当出现由一个服务器切换到另一个服务器的情形时,由于不同的服务器的时间信息可能会存在偏差,可能会出现两个服务器处理进度不同的问题。

以网络游戏为例,大型多人在线游戏(massivemultiplayeronline,简称mmo)以其独特的玩法模式吸引了越来越多的用户。在有些大型多人在线游戏中,需要多台游戏服务器构建一个集群,当用户在不同的游戏场景中迁移时,可能会跨越不同的游戏服务器。在一些对即时性和确定性要求比较高的mmo游戏中,需要精确的知道一个玩家在某一个时间进行了一个什么操作,在这种情况下,由于不同的游戏服务器的时间信息可能会存在差异,可能会导致当不同的游戏服务器对用户的操作的处理进度不同步的情况。

因此,当出现服务器切换的场景时,保证不同的服务器之间时间信息的一致性,成为亟需解决的问题。



技术实现要素:

本申请实施例提供了一种时间同步方法、装置、电子设备及可读存储介质,提高了服务器的时间信息的一致性。

一方面,本申请实施例提供一种时间同步方法,该方法包括:

接收第一服务器发送的迁移请求,上述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至上述第二服务器,上述迁移请求中包含上述第一服务器的时间信息,上述第一服务器的时间信息和上述第二服务器的时间信息按照预设时间间隔进行自更新;

响应于上述迁移请求,根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准。

一方面,本申请实施例提供了一种时间同步装置,该装置包含在第二服务器中,该装置包括:

迁移请求接收模块,用于接收第一服务器发送的迁移请求,上述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至上述第二服务器,上述迁移请求中包含上述第一服务器的时间信息,上述第一服务器的时间信息和上述第二服务器的时间信息按照预设时间间隔进行自更新;

时间信息校准模块,用于响应于上述迁移请求,根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述迁移请求包括虚拟对象的虚拟场景迁移指令,上述虚拟场景迁移指令用于指示上述虚拟对象由第一虚拟场景迁移到第二虚拟场景,上述第一虚拟场景对应的服务器为上述第一服务器,上述第二虚拟场景对应的服务器为第二服务器。

在一种可选的实施例中,上述时间信息校准模块,具体用于:

在根据上述预设时间间隔对上述第二服务器的时间信息进行自更新时,依据上述预设时间间隔对上述第二服务器的时间信息进行自更新,并根据上述第一服务器的时间信息对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述时间信息校准模块,具体用于:

若上述第一服务器的时间信息快于上述第二服务器的时间信息,则将上述第一服务器的时间信息和上述第二服务器的时间信息之间的第一时间差,对上述第二服务器的时间信息进行校准;

若上述第一服务器的时间信息等于或慢于上述第二服务器的时间信息,则不对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述装置还包括时间对准模块,该模块用于:

接收时间校准服务器发送的时间对准指令;

根据上述时间对准指令,对上述第二服务器的时间信息进行对准,得到上述第二服务器的对准时间信息;

确定上述对准时间信息和对准前的上述第二服务器的自更新时间信息之间的第二时间差,其中,上述自更新时间信息是指未基于上述第一服务器的时间信息进行校准的上述第二服务器的时间信息;

若上述第二时间差大于上述第一时间差,则将上述对准时间信息作为上述第二服务器的最新时间信息。

在一种可选的实施例中,上述第一服务器和上述第二服务器为云游戏服务器集群中的任意两个游戏场景服务器。

在一种可选的实施例中,上述虚拟场景迁移指令是上述第一服务器在上述虚拟对象由上述第一虚拟场景移动至上述第二虚拟场景的场景边界、且移动方向为趋向于第二虚拟场景的情况下,向上述第二服务器发送的。

在一种可选的实施例中,上述第一服务器的时间信息和上述第二服务器的时间信息是采用相同计时标准的时间信息。

一方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该处理器和存储器相互连接;该存储器用于存储计算机程序;该处理器被配置用于在调用上述计算机程序时,执行上述时间同步方法的任一种可能的实现方式提供的方法。

一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上时间同步方法的任一种可能的实现方式提供的方法。

一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述时间同步方法的任一种可能的实现方式提供的方法。

本申请提供的技术方案带来的有益效果是:在本申请实施例中,本申请实施例所提供的时间同步方法、装置、电子设备及存储介质,在为客户端提供服务的服务器由第一服务器切换至第二服务器时,第一服务器会向第二服务器发送携带有第一服务的时间信息的迁移请求,第二服务器可以根据第一服务器的时间信息,对第二服务器的时间信息进行校准。采用上述技术方案,第二服务器可以基于第一服务器的时间信息校准第二服务器的时间信息,保证了第一服务器和第二服务器之间的时间信息的一致性,使得当为客户端提供服务的服务器由第一服务器切换为第二服务器时,保证了服务器在切换前后客户端所产生的操作在时间上的连续性、一致性,提高了用户的游戏体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种时间同步系统在一种应用场景下的结构示意图;

图2是本申请实施例提供的一种时间同步方法的流程示意图;

图3是本申请实施例提供的一种通过ntp服务器进行时间同步的原理示意图;

图4是本申请实施例提供的一种无缝大地图游戏的系统框架示意图;

图5是本申请实施例提供的一种无缝大地图游戏包含的区域的示意图;

图6是本申请实施例提供的另一种时间同步方法的流程示意图;

图7是本申请实施例提供的一种虚拟对象由区域1迁移至区域2的示意图;

图8是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图;

图9是本发明实施例提供的区块结构(blockstructure)一个可选的示意图;

图10是本申请实施例提供的一种时间同步装置的结构示意图;

图11是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供的时间同步方法涉及云技术的多种领域,如云技术(cloudtechnology)中的云计算、云服务等,以及大数据领域中的相关数据计算处理领域。

云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。本申请实施例所提供的时间同步方法可基于云技术中的云计算(cloudcomputing)实现。

云计算是指通过网络以按需、易扩展的方式获得所需资源,是网格计算(gridcomputing)、分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)等传统计算机和网络技术发展融合的产物。

大数据(bigdata)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注。基于大数据需要特殊的技术,以有效地实施本实施例所提供的时间同步方法,其中适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、以及上述云计算等。例如,本申请实施例中的多台游戏服务器构建的服务器集群,该服务器集群采用分布式系统,不同的游戏服务器并行处理游戏中的游戏数据。

本申请实施例对于本申请实施例中的时间同步方法的适用场景不作限定,本申请实施例所提供的方法,适用于分布式系统中,由一个服务器切换至另一个服务器的场景中,包括但不限于游戏类的应用场景中,后文中以游戏类的应用场景为例进行说明。

在一可选的实施例中,本申请实施例中的时间同步方法并不局限于游戏类的应用场景,如无缝大地图游戏,实际应用中,还可以应用于其他场景中,例如,本申请实施例中的方法还可以应用于云服务器的热迁移过程。热迁移(livemigration,又叫动态迁移、实时迁移),即虚拟机(如云服务器对应的云虚拟机)保存/恢复(save/restore):将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。对于云服务器的热迁移过程中的时间同步,可以参考后文中对无缝大地图游戏的时间同步的过程,在此不再详述。

作为一个示例,图1中示出了本申请实施例所适用的一种应用于时间同步系统在一种应用场景下的结构示意图,可以理解的是,本申请实施例所提供的时间同步方法可以适用于但不限于应用于如图1所示的应用场景中。

本申请实施例中的时间同步系统可以包括用户终端和服务器,如图1中所示,该示例中的时间同步系统可以包括但不限于用户终端101、网络102、中转服务器103、第一服务器104、第二服务器105。其中,在实际应用中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,在此不作限定,本示例中,以中转服务器、第一服务器104和第二服务器105为例进行说明。用户终端101(如用户的智能手机)可以通过网络102与中转服务器103通信,中转服务器103用于中转用户终端向第一服务器104和第二服务器105发送的相关数据请求,例如,当虚拟对象在第一虚拟场景中时,中转服务器103可以用于中转第一虚拟场景对应的移动请求,该移动请求用于指示虚拟对象在第一虚拟场景中移动等,同理,当虚拟对象在第二虚拟场景中时,中转服务器103可以用于中转第二虚拟场景对应的移动请求。第一服务器104和第二服务器105之间可以通过网络102通信。其中,用户终端101中运行有游戏类应用,该游戏类应用可以是云游戏,也可以是需要进行安装客户端的游戏,用户可以通过该用户终端体验网络游戏。该客户端可以为该游戏类应用的web客户端、小程序客户端或者游戏客户端,本申请实施例在此不作限定。

在本示例中,用户终端中安装有游戏类应用的客户端,以该游戏类应用为无缝大地图游戏为例进行说明,其中,该无缝大地图(还可以称为无缝大世界)可以理解为:在网络游戏中,为了给玩家营造一个宏大的游戏世界,同时也是游戏性的需求,玩家可以在一个很大规模的地图上进行探索,在游戏服务器侧,由于单台服务器承载的地图大小和用户规模有限,可以通过多台游戏服务器构建一个集群,当用户从地图的一端走向另一端时,需要跨越多台游戏服务器,而用户体验上并没有感知到探索地图时会有不连贯的感觉,这种游戏体验和技术称为无缝大地图。

在实际应用中,对该无缝大地图游戏中具体有多少数量的虚拟场景(即虚拟游戏场景)不作限定,可以根据游戏的类型、地图的大小等因素配置,并且,该无缝大地图游戏的虚拟场景的数量还可以根据游戏的更新增加或减少一定数量的虚拟场景,在此不作限定。在该示例中,以虚拟场景的数量为两个为例进行说明,这两个虚拟场景分别为第一虚拟场景和第二虚拟场景,其中,第一虚拟场景对应的服务器为第一服务器104,第二虚拟场景对应的服务器为第二服务器105。

以下详述本申请一可选实施例中的时间同步方法的具体过程:

步骤s1,用户通过用户终端101的人机交互屏幕,在游戏类应用程序的客户端打开无缝大地图游戏,并可以通过游戏客户端控制其在游戏虚拟场景中的虚拟对象(即游戏角色),如控制虚拟对象的移动、控制虚拟对象释放技能等等。

步骤s2,用户当前所在的游戏场景为第一虚拟场景,当用户在第一虚拟场景中移动时,用户终端101可以通过网络102向中转服务器103发送第一虚拟场景对应的移动请求,该移动请求用于指示虚拟对象在第一虚拟场景中移动,然后,由中转服务器103通过网络102向第一服务器104发送该第一虚拟场景对应的移动请求。

步骤s3,当用户由第一虚拟场景移动到第二虚拟场景的边界、且移动方向为趋于第二虚拟场景的情况下,由第一服务器104通过网络102向第二服务器105发送虚拟对象的虚拟场景迁移指令。

步骤s4,第二服务器105接收第一服务器104发送的虚拟对象的虚拟场景迁移指令,其中,虚拟场景迁移指令携带有第一服务器的时间信息,第一服务器104的时间信息和第二服务器105的时间信息按照预设时间间隔进行自更新;

步骤s5,响应于迁移请求,根据第一服务器104的时间信息,对第二服务器105的时间信息进行校准。

可理解,上述仅为一种示例,本申请实施例在此不作任何限定。

其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wi-fi及其他实现无线通信的网络。用户终端可以是智能手机(如android手机、ios手机等)、平板电脑、笔记本电脑、数字广播接收器、mid(mobileinternetdevices,移动互联网设备)、pda(个人数字助理)、台式计算机、车载终端(例如车载导航终端)、智能音箱、智能手表等,用户终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。具体也可基于实际应用场景需求确定,在此不作限定。

参见图2,图2是本申请实施例提供的一种时间同步方法的流程示意图,该方法可以由用户终端和服务器交互完成,如图2所示,本申请实施例提供的时间同步方法包括如下步骤:

步骤s201,接收第一服务器发送的迁移请求,上述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至上述第二服务器,上述迁移请求中包含上述第一服务器的时间信息,上述第一服务器的时间信息和上述第二服务器的时间信息按照预设时间间隔进行自更新。

步骤s202,响应于上述迁移请求,根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准。

可选的,在分布式系统中,可能会出现为客户端服务的服务器由一个服务器切换到另一个服务器的情形,由于不同的服务器的时间信息会存在一定的偏差,为了避免由于时间偏差导致数据不同步的情况,可以采用以下方式进行优化:

当为客户端提供服务的服务器由第一服务器切换至第二服务器时,第二服务器接收由第一服务器发送的迁移请求,该迁移请求中携带了第一服务器的时间信息,通过外部事件触发的方式,即第二服务器通过接收到的迁移请求触发时间校准,第二服务器响应该迁移请求,根据第一服务器的时间信息,对第二服务器的时间信息进行校准。

以下以应用场景为游戏类应用为例进行详细说明。

在一种可选的实施例中,上述迁移请求包括虚拟对象的虚拟场景迁移指令,上述虚拟场景迁移指令用于指示上述虚拟对象由第一虚拟场景迁移到第二虚拟场景,上述第一虚拟场景对应的服务器为上述第一服务器,上述第二虚拟场景对应的服务器为第二服务器。

在一种可选的实施例中,上述虚拟场景迁移指令是上述第一服务器在上述虚拟对象由上述第一虚拟场景移动至上述第二虚拟场景的场景边界、且移动方向为趋向于第二虚拟场景的情况下,向上述第二服务器发送的。

可选的,上述虚拟对象是指用户帐号在应用程序(如游戏类应用程序)中控制的对象。该虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。用户可以通过用户终端控制该虚拟对象在该游戏类应用程序的虚拟场景中执行移动、战斗等各种游戏操作。

上述应用程序可以为游戏类应用程序,该游戏类应用程序可以为多人在线游戏应用,该多人在线游戏应用程序可以是任何能够提供虚拟环境,以供多个用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。例如,mmo游戏、无缝大地图游戏、大型多人在线战术竞技(multiplayeronlinebattlearena,moba)游戏、大型多人在线战略(massivelymultiplayeronlinesimulation,mmos)游戏、大型多人在线动作类(massivelymultiplayeronlineaction,mmoact)游戏、大型多人在线角色扮演(massivelymultiplayeronlinerole-playing,mmorp)游戏,等等。另外,对于不同的多人在线游戏应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。

上述虚拟环境是应用程序(如游戏类应用程序)的客户端在用户终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图和虚拟建筑等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。

可选的,当虚拟场景(还可以称为虚拟环境)为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选的,在本申请实施例中,上述虚拟环境中包括由不同用户帐号控制的虚拟对象。一个用户帐号所能够控制的虚拟对象的数量可以是1个,也可以是多个,本申请实施例对此不作限定。

在一个示例中,以无缝大地图游戏为例,该无缝大地图游戏可以是射击类游戏,该射击类游戏可以为第一人称射击游戏(first-personshootinggame,简称fps),也可以为第三人称射击游戏(third-personalshooting,简称tps),在此不作限定。其中,第一人称视角射击游戏顾名思义就是以玩家的主观视角来进行射击游戏。玩家们不再像别的游戏一样操纵屏幕中的虚拟人物来进行游戏,而是身临其境的体验游戏带来的视觉冲击,大大增强了游戏的主动性和真实感。第三人称射击游戏是射击游戏的一种,与第一人称射击游戏的区别在于第一人称射击游戏里屏幕上显示的只有主角的视野,而第三人称射击游戏更加强调动作感,主角在游戏屏幕上是可见的。

实际应用中,无缝大地图游戏至少包含两个虚拟场景,本示例中以无缝大地图游戏包含了两个虚拟场景为例进行说明,分别是第一虚拟场景和第二虚拟场景,其中,第一虚拟场景对应的服务器为第一服务器,第二虚拟场景对应的服务器为第二服务器。

其中,第一服务器和第二服务器均为场景服务器,在多人在线网络游戏中,场景服务器是用于视野管理、移动同步的专属服务器,例如,场景服务器可以支撑整个游戏世界上的玩家、野怪、非玩家角色(non-playercharacter,简称npc)的状态同步,这里的状态包括视野、动作、技能、血量、战斗表现等等。在回合制或即时制游戏中,还需要额外同步玩家的动画、技能、伤害等。其中,回合制是一种游戏打怪形式,所有游戏内玩家轮流自己的回合,只有轮到自己的回合,才能够进行游戏操作。即时制是即时进行的,玩家看到怪或者敌人等即可进行游戏操作。

在无缝大地图游戏中,对于即时性和确定性的要求比较高,其中,即时性可以理解为游戏中发生的操作是即时性的,确定性可以理解为需要精确的知道一个玩家在哪个时间点执行了一个什么操作。当用户通过用户终端控制虚拟对象在无缝大地图游戏中移动,从一个场景服务器对应的虚拟场景切换到另一个场景服务器对应的虚拟场景的时候,需要保证两个场景服务器各自对应的时间信息的一致性,这样才能保证游戏操作的一致性,避免出现不连贯的情形,而两个场景服务器的时间信息可能会因为一些原因(如网络波动)存在时间偏差,即两个场景服务器的时间信息不一致,这时可以按照本申请实施例的以下方式进行时间校准,以保证两个服务器的时间信息的同步。

可选的,以射击类的无缝大地图游戏为例,假设用户通过用户终端所控制的虚拟对象当前所在的虚拟游戏场景是第一虚拟场景,可以控制虚拟对象在第一虚拟场景中完成各种游戏操作,如跳跃、蹲下、趴下、奔跑、射击等等,虚拟对象在第一虚拟场景中移动的过程中,当虚拟对象越来越接近第二虚拟场景所在的区域的边界时,第一服务器会向第二服务器发送虚拟场景迁移指令。也就是说,虚拟场景迁移指令是第一服务器在虚拟对象由第一虚拟场景移动至第二虚拟场景的场景边界、且移动方向为趋向于第二虚拟场景的情况下,向第二服务器发送的。

当虚拟对象迁移至第二虚拟场景时,第二服务器会响应该虚拟场景迁移指令,根据该虚拟场景迁移指令所携带的第一服务器的时间信息校准第二服务器的时间信息。

其中,第一服务器的时间信息和第二服务器的时间信息均按照预设时间间隔进行自更新。在实际应用中,预设时间间隔可以根据需要设置,也可以根据经验值设置,在此不作限定。本示例中,该预设时间间隔可以为100ms(毫秒),即第一服务器和第二服务器均按照每100ms自增一次时间信息。

其中,在网络游戏中,为了标识客户端和服务器(如第一服务器和第二服务器)的相对时间,以一个固定的时间间隔(如100ms)作为一个刻度,来标识客户端和服务器在某一时刻用户的操作、服务器的运算结果等,会产出一个自增的唯一id,在客户端和服务器之间有网络包传递时,都会携带的一个id即帧id,该帧id可以理解为第一服务器的时间信息和第二服务器的时间信息。

其中,第一服务器的时间信息和第二服务器的时间信息是采用相同计时标准的时间信息。例如,第一服务器的时间信息和第二服务器的时间信息均采用协调世界时(coordinateduniversaltime,简称utc)进行计时,又称世界统一时间、世界标准时间、国际协调时间、国际标准时间。或者,第一服务器的时间信息和第二服务器的时间信息均采用unix时间戳(unixtimestamp)进行计时,其中,unix时间戳是从1970年1月1日(utc/格林尼治标准时间(greenwichmeantime,简称gmt)的午夜)开始所经过的秒数,不考虑闰秒。

在基于第一服务器的时间信息校准第二服务器的时间信息时,可能会出现以下几种情形:

情形1:如果第一服务器的时间信息快于第二服务器的时间信息,则基于第一服务器的时间信息,调快第二服务器的时间信息,使得第二服务器的时间信息和第一服务器的时间信息保持一致。

情形2:如果第一服务器的时间信息等于第二服务器的时间信息,则按照预设时间间隔进行自更新第二服务器的时间信息。

情形3:如果第一服务器的时间信息慢于第二服务器的时间信息,则无需对第二服务器的时间信息进行校准,直接使用第二服务器当前的时间信息,并调快第一服务器的时间信息,使得第二服务器的时间信息和第一服务器的时间信息保持一致。

通过本申请实施例,当用户由第一服务器对应的第一虚拟场景迁移至第二服务器对应的第二虚拟场景时,即触发了“迁移”事件,可通过该“迁移”事件中携带的源机器(如第一服务器)的时间信息,对当前机器(如第二服务器)进行时间信息校准,从而有效避免一台机器时钟不准确带来的风险,保证了用户在虚拟场景迁移前后所产生的游戏操作之间在时间上的连续性、一致性,提高了用户的游戏体验。

在一种可选的实施例中,上述根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准,包括:

在根据上述预设时间间隔对上述第二服务器的时间信息进行自更新时,依据上述预设时间间隔对上述第二服务器的时间信息进行自更新,并根据上述第一服务器的时间信息对上述第二服务器的时间信息进行校准。

可选的,在根据第一服务器的时间信息对第二服务器的时间信息进行校准时,可以按照以下方式实现:

假设第二服务器接收到虚拟场景迁移指令的时刻为时刻1,第二服务器按照预设时间间隔进行时间信息的自更新的时刻为时刻2(该时刻2晚于或等于时刻1)。

在一可能的示例中,可以在该时刻2,依据第一服务器的时间信息,确定出第一服务器的时间信息与第二服务器的时间信息之间的时间差,然后在第二服务器按照预设时间间隔进行时间信息的自更新的时刻下一个时刻,即时刻2的下一个自更新的时刻,记为时刻3,在该时刻3基于第一服务器的时间信息与第二服务器的时间信息之间的时间差对第二服务器的时间信息进行校准。

在一可能的示例中,可以在该时刻2,依据第一服务器的时间信息,确定出第一服务器的时间信息与第二服务器的时间信息之间的时间差,并在该时刻2,基于第一服务器的时间信息与第二服务器的时间信息之间的时间差对第二服务器的时间信息进行校准。

可理解,以上仅为几种可能的示例,本申请实施例在此不作限定。

通过本申请实施例,可以在保证第二服务器按照预设时间间隔进行自更新的基础上,基于第一服务器的时间信息对第二服务器的时间信息进行校准,保证了第一服务器的时间信息和第二服务器的时间信息之间的一致性。

在一种可选的实施例中,上述根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准,包括:

若上述第一服务器的时间信息快于上述第二服务器的时间信息,则将上述第一服务器的时间信息和上述第二服务器的时间信息之间的第一时间差,对上述第二服务器的时间信息进行校准;

若上述第一服务器的时间信息等于或慢于上述第二服务器的时间信息,则不对上述第二服务器的时间信息进行校准。

可选的,如果第二服务器在某个时间由于一些原因(如网络波动等原因)出现了时钟暂停,导致第二服务的时间信息落后于第一服务器的时间信息,此时,会出现第一服务器的时间信息快于第二服务器的时间信息的情况,可以将第一服务器的时间信息和第二服务器的时间信息之间的第一时间差确定为校准时间信息,然后基于该时间校准信息校准第二服务器的时间信息。

例如,假设第一服务器的帧id的帧号为frameid6,第二服务器的帧id的帧号为frameid3,表明第二服务器落后于第一服务器的帧数为3帧,按照预设时间间隔为100ms,那么第二服务器落后于第一服务器的第一时间差即为300ms,将该第一时间差300ms记为校准时间信息,第二服务器在后续计算时间信息时,可以基于该校准时间信息对第二服务器的时间信息进行校准。在一示例中,第二服务器当前的帧id的帧号为frameid3,那么,在第二服务器进行自更新的下一个时刻,第二服务器的帧id即为在frameid3对应的时间信息的基础上自增预设时间间隔,并加上校准时间信息,得到在下一个时刻的时间信息,此时,第二服务器的帧id的帧号即由frameid3变为了frameid7。

若上述第一服务器的时间信息等于或慢于上述第二服务器的时间信息,则将上述第二服务器的时间信息作为上述第二服务器的校准后的时间信息,也就是不对第二服务器的时间信息进行校准,具体实现方式如下:

确定第一服务器的时间信息和第二服务器的时间信息之间是否一致,如果第一服务器的时间信息等于或慢于第二服务器的时间信息,则无需对第二服务器的时间信息进行校准,即直接按照第二服务器当前的时间信息作为校准后的时间信息。

其中,当第一服务器的时间信息慢于第二服务器的时间信息时,需要调快第一服务器的时间信息。在一可选的示例中,可以通过时间校准服务器来校准第一服务器的时间信息,其中,该时间校准服务器可以为ntp(networktimeprotocol,网络时间协议)服务器,关于ntp服务器进行时间对准的原理可参考后文描述。

在一可选的实施例中,在上述根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准之后,上述方法还包括:

接收时间校准服务器发送的时间对准指令;

根据上述时间对准指令,对上述第二服务器的时间信息进行对准,得到上述第二服务器的对准时间信息;

确定上述对准时间信息和对准前的上述第二服务器的自更新时间信息之间的第二时间差,其中,上述自更新时间信息是指未基于上述第一服务器的时间信息进行校准的上述第二服务器的时间信息;

若上述第二时间差大于上述第一时间差,则将上述对准时间信息作为上述第二服务器的最新时间信息。

可选的,对于第一服务器和第二服务器来说,除了按照预设时间间隔进行时间信息的自更新,还可以通过校准服务器进行时间校准。其中,该时间校准服务器可以为ntp服务器,ntp是用来使计算机时间同步化的一种协议,可以使计算机对其服务器或时钟源(如石英钟等等)做同步化,可以提供高精准度的时间校正,且可借由加密确认的方式来防止恶毒的协议攻击。使用ntp服务器进行时间对准的各服务器是按照层级排列的,如图3所示,包括了第一层服务器,第二层服务器和第三层服务器,在对准时间时,可以从ntp服务器开始传播,依次按照不同的层级向下传播,按照离外部utc源的远近把所有服务器归入不同的层(stratum)中。

以下结合图3对通过ntp服务器进行时间校准的原理进行说明:

本申请实施例中的网络游戏的游戏时钟多采用ntp算法和一个ntp源服务器(即时间校准服务器)进行时间同步,如图3所示,最上层是ntp源服务器,即图中所示的ntp服务器0,下面的服务器(包括第一服务器和第二服务器)通过不断的和ntp源服务器进行对时,进行时间校准。在进行时间校准时,ntp源服务器将时间信息发送至第一层的服务器(即图中所示的服务器1、服务2和服务器3),第一层服务器即可根据ntp源服务器发送的时间信息校准第一层服务器的时间信息。然后,第一层服务器向第二层的服务器(即图中所示的服务器4、服务器5、服务6和服务器7)发送ntp源服务器的时间信息,第二层服务器即可根据第一层服务器发送的ntp源服务器的时间信息校准第二层服务器的时间信息。然后,第二层服务器向第三层的服务器(即图中所示的服务器8、服务器9、服务10、服务器11、服务器12和服务器13)发送ntp源服务器的时间信息,第三层服务器即可根据第二层服务器发送的ntp源服务器的时间信息校准第三层服务器的时间信息。

其中,对于每一层的服务器,任意两个服务器之间可能会存在数据通信,例如图中所示的服务器2和服务器3之间具有数据通信,假设该服务器2为第一服务器,服务器3为第二服务器,服务器2和服务器3之间的数据通信可以为服务器2向服务器3发送上述虚拟场景迁移指令。当服务器3接收到该虚拟场景迁移指令时,即可响应该虚拟场景迁移指令校准服务器3的时间信息。并且,服务器3还可以接收ntp源服务器(即时间校准服务器)发送的时间对准指令,当服务器3接收到该时间对准指令时,即可根据该时间对准指令,得到该服务器3的对准时间信息,然后,确定出对准时间信息和第二服务器校准前的时间信息之间的第二时间差,若第二时间差大于第一时间差(即校准时间信息),则将对准时间信息作为第二服务器的最新时间信息。

举例来说,假设服务器3(即第二服务器)对准前的帧id的帧号为frameid3(即对准前的第二服务器的自更新时间信息),服务器2(即第一服务器)和服务器3之间的第一时间差为300ms,服务器3根据时间校准服务器发送的时间对准指令对准后的对准时间信息为frameid7,那么,对准时间信息和对准前的服务器2的自更新时间信息之间的第二时间差即为400ms,400ms大于300ms,此时,可以将该对准时间信息作为服务器3的最新时间信息。

通过本申请实施例,可以通过时间校准服务器发送的时间对准指令和第一服务器的时间信息两个因素,采用双重保证的方式,校准第二服务器的时间信息,这种综合考虑多种因素进行时间校准的方式,极大地保证了时间同步的合理性,提高了服务器之间时间信息的一致性。

在一种可选的实施例中,上述第一服务器和上述第二服务器为云游戏服务器集群中的任意两个游戏场景服务器。

可选的,本申请实施例中第一服务器和第二服务器可以是云游戏服务器集群中的任意两个游戏场景服务器,即本申请实施例中的时间同步方法可以应用于云游戏场景中,第二服务器基于第一服务器的时间信息进行时间校准的原理可参考前文描述,在此不再赘述。

以下结合一实施例进行详细说明。该示例中,以网络游戏中的无缝大地图游戏为例进行说明。

以下对无缝大地图游戏系统进行详细介绍。

如图4所示,该无缝大地图游戏系统包括客户端(client)、接入中转服务器(即上述中转服务器)、大区服务器和场景服务器,其中,实际应用中,对于场景服务器和大区服务器的数量不作限定,例如,图4中示出的场景服务器包括场景服务器1至场景服务器n,大区服务器包括大区服务器1至大区服务器n,其中,n为正整数。接入中转服务器、大区服务器和场景服务器共同构成该无缝大地图游戏的服务器集群,该服务器集群为一个分布式系统。

其中,客户端在该示例中特指无缝大地图游戏中的玩家。

其中,大区服务器是玩家非直接连接的服务器,用于处理游戏中用户所有的非物理世界操作的处理,非物理世界可以理解为游戏中除了上述虚拟场景(即虚拟环境)之外的其他世界,例如,中转服务器可以用于处理用户对游戏中的邮件、背包等的操作。

其中,场景服务器是玩家非直接连接的服务器,用于游戏中用户的所有物理世界操作的处理,物理世界可以理解为上述虚拟场景(即虚拟环境),例如,场景服务器可以用于处理用户在游戏中的移动、飞行等操作,其中,每一个场景服务器负责无缝大地图游戏中的地图上的一个区域(即一个虚拟场景)。在实际应用中,对于地图中包含的区域的数量不作限定,如图5所示,该无缝大地图游戏中的地图包括n个区域,其中,场景服务器1负责区域1的相关游戏操作,……,场景服务器n负责区域n的相关游戏操作。

其中,接入中转服务器是玩家直接连接的服务器,玩家(即客户端)向场景服务器和大区服务器发送的相关数据请求(如上述第一虚拟场景对应的移动请求和第二虚拟场景对应的移动请求),都会经过接入中转服务器进行中转。

可选的,对于场景服务器来说,由于当用户通过用户终端控制虚拟对象从游戏地图的一端移动至另一端时,可能会跨域多个虚拟场景,相应的,会跨越该多个虚拟场景对应的多个场景服务器,例如,当玩家从区域1(即第一虚拟场景)进入区域2(即第二虚拟场景)时,会从区域1对应的场景服务器1(即第一服务器)切换至另一场景服务器2(即第二服务器)。由于不同的场景服务器之间的时间信息可能会存在时间偏差的情况,需要保证不同的场景服务器之间的时间一致性。场景服务器自身会按照一定的预设时间间隔进行时间信息的自更新(即自增),以下介绍场景服务器的帧id的生成规则和步进方案。

其中,帧id的生成规则如下:

场景服务器可以采用绝对时间来计算出场景服务器的帧id,以场景服务器和客户端之间进行数据同步为1秒10hz(即1秒10次,其中,100ms为一帧)为例进行说明,场景服务器会根据接收到的ntp源服务器(即时间校准服务器)当前的系统时间,记为t,按照一定的预设时间间隔进行帧id的自增,精度为毫秒,帧间隔(即预设时间间隔)以interval表示,如100ms,例如,可以采用以下算法来计算帧id:

frameid=t/interval&0xffff

其中,以1秒有10帧为例,0xffff换算成10进制为65535,1分钟有600帧,那么65535/600=109分钟,&0xffff的目的就是让帧id从0到65400之间自增,增长到65400后,下一帧又回到0。

通过这种方式,在不同的场景服务器上相同的时间点,可以得到确定性的帧id,在100ms一帧的情况下,支持每109分钟再进行一次归0。

其中,帧id的步进方案如下:

场景服务器运行过程中,每100ms间隔,帧id进行一次自增,在不出现异常情况时,可以按照场景服务器自增所记录的帧id进行计时,如果某一台或多台服务器的时钟出现暂停时,需要有针对的策略进行校准,以下结合图6对本申请实施例中的时间同步方法进行详细说明。

如图6所示,图中所示的客户端(client)是一个玩家,该玩家可以控制虚拟对象在游戏的世界场景中移动,该客户端可以与接入中转服务器(即中转server)建立通信连接,通过该接入中转服务器进行移动请求的转发和回包广播。

如图7所示,以射击类的无缝大地图游戏为例,假设场景服务器a(以下简称为场景servera,对应于上述第一服务器)管理游戏地图中的区域1,场景服务器b(以下简称为场景serverb,对应于上述第二服务器)管理游戏地图中的区域2。场景servera和场景serverb,均按照每100ms进行一个帧id的自增,但场景serverb在某个时间段出现了一些问题,时钟中断了300ms。

玩家所控制的虚拟对象当前所在的地图区域(即区域1)是场景servera负责管理,当用户在区域1所在的场景中移动时,客户端会向接入中转服务器发送虚拟对象在区域1中移动的移动请求,接入中转服务器会将该移动请求向场景servera进行转发,场景servera会接收并处理该移动请求相关的数据处理,并向接入中转服务器广播该移动请求。当玩家所控制的虚拟对象在场景中移动到边界时,接入中转服务器会将虚拟对象移动到区域1的边界的移动请求向场景servera进行转发,场景servera会接收并处理该移动请求相关的数据处理,假设该移动请求指示玩家从区域1(即第一虚拟场景)进入区域2(即第二虚拟场景)时,会触发由区域1对应的场景servera切换至区域2对应的场景servera,此时,场景servera会向场景serverb发送迁移请求(即场景迁移指令),该迁移请求中会携带场景servera的帧id。

如图6所示,对于场景serverb,假设在时刻t,场景serverb接收到该迁移请求,会响应该迁移请求,对场景serverb的时间信息进行校准,其中,迁移请求中携带的场景servera的帧id为frameid6,场景serverb当前的帧id为frameid3,即场景servera的帧id的帧号比场景serverb当前的帧id的帧号大3,说明场景serverb的时间信息出现了偏移,偏移的时间为300ms,可以记录一个校准值为3(即记录校准时间信息为300ms)。在

在时刻t的下一时刻即时刻t 1,场景serverb的帧id可以使用场景serverb的本机时间计算的帧id 校准值来确定场景serverb的时间信息。即在时刻t 1,场景serverb按照本机时间自增得到的帧id为frameid4,将frameid4加上校准值后,得到的帧id为frameid7。

在时刻t 1的下一时刻即时刻t 2,场景serverb机器通过接收ntp服务器的发送的时间对准指令,进行自动校准后,得到场景serverb在时刻t 2的帧id为frameid8(即对准时间信息),发现当前的帧id(即对准时间信息)已经发生了一个跳变,跳变值(即对准时间信息和校准前的时间信息之间的第二时间差,即frameid8和frameid4之间的时间差)为400ms,表明跳变值已超过校准值,这时可以把校准值清0,继续使用场景serverb的本机时间计算的帧id即可,有效解决了时间跳变的问题,从而实现了一个分布式系统中帧id步进的能力。

通过本申请实施例,一方面,采用去中心化的设计,采用分布式系统,使得分布式系统中的各台服务器(如各场景服务器)独立进行步进,避免了中心化设计中,由一个服务器负责驱动其它所有服务器帧步进的单点风险,具有较好的冗灾能力。另一方面,当第二服务器记录的本机帧id的步进出现中断或不准确时,可以通过外部事件触发(即虚拟场景迁移指令)的方式进行时间校准,这种通过“迁移”事件所携带的第一服务器(即源机器)的帧id,对第二服务器(即当前机器)进行时间校准的方式,可以有效避免一台机器时钟不准确带来的风险,提高了服务器之间的时间一致性。

本发明实施例涉及的时间同步系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如上述中转服务器、场景服务器(包括第一服务器和第二服务器)、大区服务器、ntp服务器、用户终端)通过网络通信的形式连接形成的分布式系统。

以分布式系统为区块链系统为例,参见图8,图8是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。

参见图8示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。

参见图9,图9是本发明实施例提供的区块结构(blockstructure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

参见图10,图10是本申请实施例提供的一种时间同步装置的结构示意图。本申请实施例提供的时间同步装置包含在第二服务器中,该时间同步装置11包括:

迁移请求接收模块111,用于接收第一服务器发送的迁移请求,上述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至上述第二服务器,上述迁移请求中包含上述第一服务器的时间信息,上述第一服务器的时间信息和上述第二服务器的时间信息按照预设时间间隔进行自更新;

时间信息校准模块112,用于响应于上述迁移请求,根据上述第一服务器的时间信息,对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述迁移请求包括虚拟对象的虚拟场景迁移指令,上述虚拟场景迁移指令用于指示上述虚拟对象由第一虚拟场景迁移到第二虚拟场景,上述第一虚拟场景对应的服务器为上述第一服务器,上述第二虚拟场景对应的服务器为第二服务器。

在一种可选的实施例中,上述时间信息校准模块,具体用于:

在根据上述预设时间间隔对上述第二服务器的时间信息进行自更新时,依据上述预设时间间隔对上述第二服务器的时间信息进行自更新,并根据上述第一服务器的时间信息对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述时间信息校准模块,具体用于:

若上述第一服务器的时间信息快于上述第二服务器的时间信息,则将上述第一服务器的时间信息和上述第二服务器的时间信息之间的第一时间差,对上述第二服务器的时间信息进行校准;

若上述第一服务器的时间信息等于或慢于上述第二服务器的时间信息,则不对上述第二服务器的时间信息进行校准。

在一种可选的实施例中,上述装置还包括时间对准模块,该模块用于:

接收时间校准服务器发送的时间对准指令;

根据上述时间对准指令,对上述第二服务器的时间信息进行对准,得到上述第二服务器的对准时间信息;

确定上述对准时间信息和对准前的上述第二服务器的自更新时间信息之间的第二时间差,其中,上述自更新时间信息是指未基于上述第一服务器的时间信息进行校准的上述第二服务器的时间信息;

若上述第二时间差大于上述第一时间差,则将上述对准时间信息作为上述第二服务器的最新时间信息。

在一种可选的实施例中,上述第一服务器和上述第二服务器为云游戏服务器集群中的任意两个游戏场景服务器。

在一种可选的实施例中,上述虚拟场景迁移指令是上述第一服务器在上述虚拟对象由上述第一虚拟场景移动至上述第二虚拟场景的场景边界、且移动方向为趋向于第二虚拟场景的情况下,向上述第二服务器发送的。

在一种可选的实施例中,上述第一服务器的时间信息和上述第二服务器的时间信息是采用相同计时标准的时间信息。

通过本申请实施例,在为客户端提供服务的服务器由第一服务器切换至第二服务器时,第一服务器会向第二服务器发送携带有第一服务的时间信息的迁移请求,第二服务器可以根据第一服务器的时间信息,对第二服务器的时间信息进行校准。采用上述技术方案,第二服务器可以基于第一服务器的时间信息校准第二服务器的时间信息,保证了第一服务器和第二服务器之间的时间信息的一致性,使得当为客户端提供服务的服务器由第一服务器切换为第二服务器时,保证了服务器在切换前后客户端所产生的操作在时间上的连续性、一致性,提高了用户的游戏体验。

具体实现中,上述时间同步装置11可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,体可参见上述各个步骤所提供的实现方式,在此不再赘述。

上文主要介绍说明了执行主体为硬件,来实施本申请中的时间同步方法,但是本申请的时间同步方法的执行主体并不仅限于硬件,本申请中的时间同步方法的执行主体还可以为软件,上述时间同步装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该时间同步装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。

在一些实施例中,本申请实施例提供的时间同步装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的时间同步装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的时间同步方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件。

在另一些实施例中,本申请实施例提供的时间同步装置可以采用软件方式实现,图10示出的时间同步装置11,其可以是程序和插件等形式的软件,并包括一系列的模块,包括虚拟场景迁移请求接收模块111和时间信息校准模块112,用于实现本申请实施例提供的时间同步方法。

参见图11,图11是本申请实施例提供的一种电子设备的结构示意图。如图11所示,本实施例中的电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图11所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的计算机程序。

应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2中任一种可能的实施方式所提供的方法。

本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。


技术特征:

1.一种时间同步方法,其特征在于,所述方法由第二服务器执行,所述方法包括:

接收第一服务器发送的迁移请求,所述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至所述第二服务器,所述迁移请求中包含所述第一服务器的时间信息,所述第一服务器的时间信息和所述第二服务器的时间信息按照预设时间间隔进行自更新;

响应于所述迁移请求,根据所述第一服务器的时间信息,对所述第二服务器的时间信息进行校准。

2.根据权利要求1所述的方法,其特征在于,所述迁移请求包括虚拟对象的虚拟场景迁移指令,所述虚拟场景迁移指令用于指示所述虚拟对象由第一虚拟场景迁移到第二虚拟场景,所述第一虚拟场景对应的服务器为所述第一服务器,所述第二虚拟场景对应的服务器为第二服务器。

3.根据权利要求1所述的方法,其特征在于,所述根据所述第一服务器的时间信息,对所述第二服务器的时间信息进行校准,包括:

在根据所述预设时间间隔对所述第二服务器的时间信息进行自更新时,依据所述预设时间间隔对所述第二服务器的时间信息进行自更新,并根据所述第一服务器的时间信息对所述第二服务器的时间信息进行校准。

4.根据权利要求1所述的方法,其特征在于,所述根据所述第一服务器的时间信息,对所述第二服务器的时间信息进行校准,包括:

若所述第一服务器的时间信息快于所述第二服务器的时间信息,则将所述第一服务器的时间信息和所述第二服务器的时间信息之间的第一时间差,对所述第二服务器的时间信息进行校准;

若所述第一服务器的时间信息等于或慢于所述第二服务器的时间信息,则不对所述第二服务器的时间信息进行校准。

5.根据权利要求1所述的方法,其特征在于,在所述根据所述第一服务器的时间信息,对所述第二服务器的时间信息进行校准之后,所述方法还包括:

接收时间校准服务器发送的时间对准指令;

根据所述时间对准指令,对所述第二服务器的时间信息进行对准,得到所述第二服务器的对准时间信息;

确定所述对准时间信息和对准前的所述第二服务器的自更新时间信息之间的第二时间差,其中,所述自更新时间信息是指未基于所述第一服务器的时间信息进行校准的所述第二服务器的时间信息;

若所述第二时间差大于所述第一时间差,则将所述对准时间信息作为所述第二服务器的最新时间信息。

6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一服务器和所述第二服务器为云游戏服务器集群中的任意两个游戏场景服务器。

7.根据权利要求2所述的方法,其特征在于,所述虚拟场景迁移指令是所述第一服务器在所述虚拟对象由所述第一虚拟场景移动至所述第二虚拟场景的场景边界、且移动方向为趋向于第二虚拟场景的情况下,向所述第二服务器发送的。

8.根据权利要求1所述的方法,其特征在于,所述第一服务器的时间信息和所述第二服务器的时间信息是采用相同计时标准的时间信息。

9.一种时间同步装置,其特征在于,所述装置包含在第二服务器中,所述装置包括:

迁移请求接收模块,用于接收第一服务器发送的迁移请求,所述迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至所述第二服务器,所述迁移请求中包含所述第一服务器的时间信息,所述第一服务器的时间信息和所述第二服务器的时间信息按照预设时间间隔进行自更新;

时间信息校准模块,用于响应于所述迁移请求,根据所述第一服务器的时间信息,对所述第二服务器的时间信息进行校准。

10.根据权利要求9所述的装置,其特征在于,所述迁移请求包括虚拟对象的虚拟场景迁移指令,所述虚拟场景迁移指令用于指示所述虚拟对象由第一虚拟场景迁移到第二虚拟场景,所述第一虚拟场景对应的服务器为所述第一服务器,所述第二虚拟场景对应的服务器为第二服务器。

11.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;

所述存储器用于存储计算机程序;

所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至8任一项中所述的方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至8任一项中所述的方法。

技术总结
本申请实施例公开了一种时间同步方法、装置、电子设备及可读存储介质,涉及平台优化、游戏、游戏运营、云技术以及区块链等领域。该方法包括:接收第一服务器发送的迁移请求,迁移请求用于指示为客户端提供服务的服务器由第一服务器切换至第二服务器,迁移请求中包含第一服务器的时间信息,第一服务器的时间信息和第二服务器的时间信息按照预设时间间隔进行自更新;根据第一服务器的时间信息,对第二服务器的时间信息进行校准。采用上述技术方案,提高了服务器的时间信息的一致性。

技术研发人员:王亚昌
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2021.06.03
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7486.html

最新回复(0)