CN114432693A - 一种数据同步方法、设备及介质 - Google Patents

一种数据同步方法、设备及介质 Download PDF

Info

Publication number
CN114432693A
CN114432693A CN202011121903.7A CN202011121903A CN114432693A CN 114432693 A CN114432693 A CN 114432693A CN 202011121903 A CN202011121903 A CN 202011121903A CN 114432693 A CN114432693 A CN 114432693A
Authority
CN
China
Prior art keywords
client
data packet
current
current data
user
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.)
Pending
Application number
CN202011121903.7A
Other languages
English (en)
Inventor
官成文
***
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011121903.7A priority Critical patent/CN114432693A/zh
Publication of CN114432693A publication Critical patent/CN114432693A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及计算机技术领域,提供一种数据同步方法、设备及介质,该方法用于减少控制数据同步过程中的时延,该方法包括:第一客户端根据第一协作用户在第一客户端中的操作数据,生成第一客户端的当前数据包;将第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端;分别接收各个第二客户端分别发送的当前数据包;将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得第一客户端的当前数据帧;根据当前数据帧,更新第一客户端的显示画面。该方法通过客户端之间直接发送数据包,无需服务器的中转,客户端根据接收到的所有数据包进行组帧,并更新显示,实现低延迟的更新显示。

Description

一种数据同步方法、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及游戏技术领域,提供一种数据同步方法、设备及介质。
背景技术
对局内的游戏玩家要实现共同游戏,需要实现不同游戏玩家的客户端之间数据同步,这样才能保证游戏应用在不同客户端的呈现是一致的。
目前,游戏中常用的一种实现数据同步的方案为帧同步,帧同步具体思路是:服务器从各个客户端接收不同游戏玩家的操作信息,将各个游戏玩家的操作信息组合成数据帧,并将数据帧下发至各个客户端。各个客户端根据接收到的数据帧进行处理显示。在帧同步中,各个客户端的数据同步均是依赖于服务器进行中转,服务器中转过程中必然会存在一定的时延。
发明内容
本申请实施例提供一种数据同步方法、设备及介质,用于减少数据同步过程中的时延。
一方面,提供了一种数据同步方法,用于多人协作的目标应用所对应的客户端中,所述多人协作中各个协作用户的客户端之间通信连接,所述方法包括:
第一协作用户的第一客户端在根据上一数据帧更新自身的显示画面后,根据所述第一协作用户在所述第一客户端中的操作数据,生成所述第一客户端的当前数据包;
将所述第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端;
分别接收各个第二客户端分别发送的当前数据包;
将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得所述第一客户端的当前数据帧;
根据所述当前数据帧,更新所述第一客户端的显示画面。
本申请实施例提供一种数据同步装置,所述装置设置在用于多人协作的目标应用所对应的客户端中,所述多人协作中各个协作用户的客户端之间通信连接,所述装置包括:
生成模块,用于在根据上一数据帧更新自身的显示画面后,根据所述第一协作用户在所述第一客户端中的操作数据,生成所述第一客户端的当前数据包;
收发模块,用于将所述第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端;以及,分别接收各个第二客户端分别发送的当前数据包;
组帧模块,用于将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得所述第一客户端的当前数据帧;
更新模块,用于根据所述当前数据帧,更新所述第一客户端的显示画面。
在一种可能的实施例中,所述第一协作用户的当前数据包和各个其他协作用户的当前数据包均包括数据包标识,所述数据包标识用于指示客户端生成数据包的次序;所述组帧模块具体用于:
确定与所述第一客户端的当前数据包标识相同的各个其他协作用户的当前数据包;
将所述第一客户端的当前数据包中的操作数据,与确定出的各个其他协作用户的当前数据包中的操作数据组成当前数据帧。
在一种可能的实施例中,若所述各个其他协作用户的第二客户端包括一个主客户端,所述装置设置在从客户端中;所述收发模块具体用于:
若当前时间误差不处于预设范围内,则调整预设的预设时间间隔;其中,所述当前时间误差是指所述主客户端的当前时间与所述第一客户端的当前时间之间的时间差值;
在达到调整后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端。
在一种可能的实施例中,所述收发模块具体用于:
若当前时间误差大于预设范围的最大值,则将减少预设的预设时间间隔,在达到减少后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端;其中,所述当前时间误差是指所述主客户端的当前时间与所述第一客户端的当前时间之间的时间差值;
若当前时间误差小于预设范围的最小值,则将增加预设时间间隔,在达到增加后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端。
在一种可能的实施例中,所述收发模块还用于:
若所述主客户端与所述第一客户端之间的时间误差已处于所述预设范围内,则以所述预设时间间隔为周期,向所述各个其他协作用户的第二客户端发送后续数据包;
其中,所述后续数据包在根据所述当前数据帧更新自身的显示画面后,根据所述第一协作用户在所述第一客户端中的操作数据生成的。
在一种可能的实施例中,所述装置还包括确定模块,其中:
所述收发模块,还用于向所述主客户端发送测速探测包,并接收所述主客户端反馈的测速应答包;
所述确定模块,还用于根据发送所述测速探测包的时间和接收测速应答包的时间,确定所述第一客户端与所述主客户端之间的当前时延值;
根据所述当前时延值、接收的所述主客户端发送的当前数据包的数据包标识的最大值、以及所述预设时间间隔,确定所述主客户端与所述第一客户端之间的当前时间误差。
在一种可能的实施例中,所述装置还包括建立模块,其中:
所述生成模块,还用于响应于请求游戏操作,生成游戏请求;
所述收发模块,还用于在将所述游戏请求发送给服务器后,接收所述服务器反馈的参与本次游戏的各个其他协作用户的客户端的通信地址;
所述建立模块,用于根据所述各个其他协作用户的客户端的通信地址,建立所述第一客户端与所述各个其他协作用户的第二客户端之间的通信连接。
在一种可能的实施例中,所述更新模块具体用于:
根据所述当前数据帧中的各个操作数据,确定各个操作数据对应的游戏角色的当前状态;
根据各个操作数据对应的游戏角色的当前状态,更新所述第一客户端的显示画面。
本申请实施例提供一种计算机设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如一方面中任一项所述的方法。
本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如一方面中任一项所述的方法。
由于本申请实施例采用上述技术方案,至少具有如下技术效果:
本申请实施例中客户端可以将获得的包括操作数据的数据包直接发送给其他客户端,无需经过服务器中转,减少了收发数据的延迟,从而提高了终端基于数据更新显示画面的实时性,且无需服务器中转,降低了服务器部署和硬件成本等。且,由于各个客户端无需收发大量数据,因此可以适用于各个客户端之间频繁地收发数据包,提升客户端更新显示画面的频率。
附图说明
图1为相关技术提供的一种帧同步中各设备间的交互示意图;
图2为本申请实施例提供的一种数据同步方法的应用场景示例图;
图3为本申请实施例提供的一种图1中各个设备之间的交互示意图;
图4为本申请实施例提供的一种各个客户端之间的通信连接示例图;
图5为本申请实施例提供的一种数据帧的示例图;
图6为本申请实施例提供的一种更新显示画面的过程示例图;
图7为本申请实施例提供的一种调整时间的示例图;
图8为本申请实施例提供的一种数据同步装置的结构示意图;
图9为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的名词进行介绍。
云技术(Cloud technology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
应用:泛指能够用于实现某些功能的程序,本申请实施例中的应用泛指能够实现多人协作的应用。客户端是指应用在各个终端中的载体,可以是网页版的客户端、或可以是预装在终端中的客户端,或可以是嵌入在第三方应用中的客户端。多人协作的应用例如游戏应用,或者即时通讯应用等。
数据帧:是指多人协作中各个协作用户的操作数据组成的数据帧,在客户端中,客户端是根据连续的数据帧{rame1,frame2...frameN}驱动更新自身的显示画面。每个数据帧包括各个协作用户的操作数据,即frame=[协作用户1的输入]+[协作用户2的输入]+...+[协作用户n的输入]。协作用户的输入可以为不含任何有效信息的空输入。
预设时间间隔:在本申请实施例中是指客户端向其他客户端发送数据包的周期。在开始时,各个客户端的预设时间间隔的取值是相同的,在发送数据包的过程中,各个客户端会根据实际情况,调整预设时间间隔的取值,以实现与主客户端的时间同步。预设时间间隔与客户端的帧率反相关,例如帧率为30帧/秒,那么对应预设时间间隔为1/30秒。
下面对相关技术进行介绍:
请参照图1所示的相关技术提供的帧同步方案中,服务器与客户端之间的交互示例图,下面结合图1对相关技术的帧同步方案进行示例说明。
第一客户端P1采集第一用户在第一时间段内的第一操作数据,第一客户端P1将第一操作数据发送给服务器S,第二客户端P2可以将第二操作数据发送给服务器S。服务器S接收第一操作数据和第二操作数据组成数据帧。
服务器S将数据帧下发至第一客户端P1和第二客户端P2,第一客户端P1和第二客户端P2接收数据帧之后,根据数据帧更新自身当前的显示画面。在间隔预设时长之后,重复上述流程,从而实现各个客户端在各个协作用户使用应用过程中的游戏呈现一致。
但这种相关技术中,服务器S需要接收各个操作数据进行组帧,且在组帧之后,需要将组帧结果下发给各个客户端,也就是说,实际是需要服务器中转操作数据,而中转过程中必然需要消耗额外的时间,导致用户在操作之后,客户端无法及时地更新显示画面,即数据同步过程中存在较大的时延。
下面对本申请实施例的设计思想进行介绍。
为此,本申请实施例提供一种数据同步方法,该方法在各个客户端之间建立通信之后,每个客户端将操作数据下发给其他客户端。这样一来,每个客户端均能接收到其他客户端发送的操作数据,直接由客户端将这些操作数据组帧,并根据组成的数据帧,更新自身的显示画面,由于该方案中无需服务器中转操作数据,因此可以降低操作数据发送过程中的延迟,提升控制应用的实时性。且,由于客户端无需承载大量数据收发,因此本方案能够适用于客户端频繁地收发操作数据的情况,进而可以提升操作数据收发的及时性,以及提升客户端更新显示画面的频率。
基于上述设计思想,下面对本申请实施例的数据同步方法的应用场景进行介绍。
请参照图2所示的场景应用图,该场景中包括多个终端210和服务器220,每个终端210中安装有多人协作的应用所对应的客户端211,服务器220为多人协作的应用所对应的后台服务器。终端210例如包括图2中的第一终端210-1和第二终端210-2,第一终端210-1安装有第一客户端211-1,第二终端210-2中安装有第三客户端211-2,第三终端210-3安装有第四客户端211-3。为了便于描述,第一终端210-1对应的协作用户称为第一协作用户,又可以简称为第一用户,第二终端210-2对应的用户称为第二协作用户,又可以简称为第二用户,第三终端210-1对应的用户称为第三协作用户,又可以称为第三用户。其中,第三客户端211-2和第四客户端211-3均可以视为前文中的其他参与协作的其他用户的第二客户端。
在第一用户准备使用应用时,第一用户可以通过第一客户端211-1进行操作,第一客户端211-1生成应用请求,第一客户端211-1将该应用请求发送给服务器220。
服务器220为第一客户端211-1确定参与应用的用户,并生成多人协作团队,服务器220将多人协作团队信息下发至各个客户端,并将多人协作团队中各个客户端的通信地址下发给每个客户端,以便于多人协作团队内的各个客户端建立通信连接。
或者,各个客户端211之间无需借助服务器220建立连接,例如可以根据用户的操作,获得其他客户端对应账号标识,利用账号标识建立与其他客户端211之间的通信。例如在单击游戏场景中,各个客户端211可以根据用户输入的其他用户的游戏账号,以建立与其他客户端之间的通信连接。
在各个客户端建立通信连接之后,各个客户端可以根据用户的操作,获得操作数据,并将操作数据发送给多人协作团队内的其他客户端,其他客户端可以根据多人协作团队内的所有操作数据进行组帧,并根据组成的数据帧进行显示,从而实现各个客户端的显示画面同步。
其中,服务器220可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端210可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能游戏设备、车载终端等,但并不局限于此。终端210以及服务器220可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
基于上述场景,下面结合图3所示的图1中各个设备之间的交互过程图,以多人协作的应用为游戏应用为例,对本申请实施例涉及的数据同步方法进行介绍:
S301,各个客户端211向服务器220发送游戏请求。
各个客户端211生成游戏请求的方式相同,下面以第一客户端211-1生成游戏请求为例进行示例说明:
第一用户可以在第一客户端211-1中进行的游戏操作,第一客户端211-1响应该游戏操作,生成游戏请求。游戏请求用于请求创建游戏对局,该游戏请求中可以携带有该第一客户端211-1的通信地址。
应当说明的是,各个客户端211发送游戏请求的顺序可以任意的,本申请不做具体限定。
应当说明的是,当以第一用户的第一客户端211-1作为执行主体时,第三客户端211-2和第四客户端211-3均可以视为前文中的其他参与协作的其他用户的第二客户端。
S302,服务器220创建游戏对局,生成游戏对局信息。
服务器220在接收各个客户端211发送的游戏请求之后,确定各个客户端211均需要加入游戏对局,可以创建游戏对局,将各个客户端211分配至相应的游戏对局。例如服务器220可以将客户端211处于同一地区内的预设数量的用户分配至同一个游戏对局,或者服务器220可以将游戏等级相同的用户分配至同一个游戏对局内。
服务器220创建游戏对局之后,为各个客户端分配游戏对局后,也确定了参与游戏对局的各个客户端,可以获得游戏对局信息。游戏对局信息是指当前创建的游戏对局的信息,游戏对局信息包括游戏对局标识,以及参与游戏对局的各个客户端211的通信地址。
S303,服务器220将游戏对局信息发送给参与游戏对局的各个客户端211。
例如,服务器220确定第一客户端211-1、第三客户端211-2和第四客户端211-3参与同一游戏对局,那么服务器220可以将该游戏对局信息分别下发给第一客户端211-1、第三客户端211-2和第四客户端211-3。
S304,参与游戏对局的各个客户端211之间建立通信连接。
第一客户端211-1、第三客户端211-2和第四客户端211-3接收到游戏对局信息,每个客户端211可以根据其他客户端的通信地址,建立与其他客户端之间的通信连接。每个客户端与其他客户端建立通信的方式均相同,下面以第一客户端211-1建立与第三客户端211-2和第四客户端211-3之间的通信连接的方式进行示例说明:
第一客户端211-1可以向第三客户端211-2和第四客户端211-3发送连接请求,该连接请求可以携带有游戏对局标识。第三客户端211-2和第四客户端211-3接收该连接请求后,验证该游戏对局标识是否与自身接收到的游戏对局信息中的游戏对局标识相同,如果相同,则确定第一客户端211-1为合法的客户端,进而可以向第一客户端211-1发送连接应答,从而完成第一客户端211-1与第三客户端211-2和第四客户端211-3之间的通信连接。
第一客户端211-1、第三客户端211-2和第四客户端211-3中各个客户端相互建立通信后可以表示如图4所示的示例图,图4中P1表示第一客户端,P2表示第三客户端,P3表示第四客户端。如图4所示,在第一客户端211-1、第三客户端211-2和第四客户端211-3建立通信连接之后,任意两个客户端之间均可以通信。
作为一种实施例,S301~S304为可选的部分。
在一种可能的实施例中,例如在单机游戏中,第一客户端211-1可以直接在第一客户端211-1中创建游戏对局,第一客户端211-1可以根据第一用户输入的第二用户的游戏账号标识,以及第三用户的游戏账号标识,第一客户端211-1分别根据第二用户的游戏账号标识和第三用户的游戏账号标识,建立与其他客户端之间的通信。
无论采用上述哪一种通信方式,在游戏对局中各个客户端211建立通信连接之后,进入游戏。在进入游戏之后,各个客户端211可以根据各用户对应的游戏角色以及游戏场景显示游戏的初始画面。
S305,第一客户端211-1根据第一用户的操作,生成第一用户的第一数据包。
在游戏过程中,第一用户可以根据游戏的进度,进行相应的操作,第一客户端211-1可以将第一用户在预设时长内的操作,生成第一数据包。可以理解为第一用户的第一数据包包括第一用户在预设时长内的操作数据。预设时长的取值可以是任意的,本申请不做具体限定。第一用户在预设时长内的操作数据可以具体包括多个操作的操作数据,或者一个操作的操作数据,或者可以没有操作。例如在游戏过程中,可能第一用户在预设时长内并没有进行任何操作,那么第一数据包中该第一用户的操作数据则为空。
例如用户点击技能1的操作可以表示为0001,用户点击技能2的操作可以表示为0002。
应当说明的是,第一数据包在被处理时可以视为当前数据包,也就是说,当前数据包可以理解为当前正在被处理的数据包,即任何一个数据包在被处理时都可以视为当前数据包。
作为一种实施例,由于客户端会不断地产生数包,为了便于区分各个预设时长所对应的数据包,第一数据包还可以携带有数据包标识。该数据包标识用于指示客户端生成的数据包的次序,由于客户端是以预设时长为周期,分别生成各个预设时长的数据包,那么数据包标识实际上也就指示了生成该数据包的时间段。数据包标识例如可以从0开始依次递增。
例如,第一客户端211-1根据第0S至1S的操作数据,生成的第一个数据包,该数据包表示为0;第一客户端211-1根据第1S至2S的操作数据,生成的第一个数据包,该数据包表示为1,依次类推。
S306,第一客户端211-1将第一数据包发送给其他客户端。
第一客户端211-1在生成第一数据包之后,可以在达到预设时间间隔之后,将第一数据包发送给第三客户端211-2和第四客户端211-3。预设时间间隔与发送频率反相关,如果发送频率越高,则预设时间间隔取值越小,如果发送频率越小,则预设时间间隔取值越大。该发送频率又可以称为帧率。发送频率越高,客户端更新显示画面的频率越高,但客户端的处理负荷量较大。
例如,预设时间间隔为3秒,那么第一客户端211-1在获得第二用户的第一数据包之后,达到3秒之后将第一用户的第一数据包发送给第三客户端211-2和第四客户端211-3。
S307,第三客户端211-2根据第二用户的操作,生成第二用户的第一数据包。
同理,第三客户端211-2在游戏中,也可以根据第二用户在预设时长内的操作,生成第一数据包。进一步地,第二用户的第一数据包携带有数据包标识,数据包标识的具体含义可以参照前文论述的内容,此处不再赘述。
应当说明的是,S305和S307的顺序是同步的。
S308,第三客户端211-2将第二用户的第一数据包发送给其他客户端。
同理,第三客户端211-2在获得第二用户的第一数据包之后,可以在达到预设时间间隔之后,将第二用户的第一数据包发送给第一客户端211-1和第四客户端211-3。
应当说明的是,S306和S308的顺序可以是同步的。
S309,第四客户端211-3根据第三用户的操作,生成第三用户的第一数据包。
同理,第四客户端211-3可以采集预设时长内的第三用户的操作数据,生成第三用户的第一数据包。进一步地,第三用户的第一数据包携带有数据包标识,数据包标识的具体含义可以参照前文论述的内容,此处不再赘述。
S310,第四客户端211-3将第三用户的第一数据包发送给其他客户端。
同理,第四客户端211-3在获得第三用户的第一数据包之后,可以在达到预设时间间隔之后,将第三用户的第一数据包发送给第三客户端211-2和第一客户端211-1。
S311,各个客户端211根据各个第一数据包,组成第一数据帧。
每个客户端211组帧的方式相同,下面以第一客户端211-1组成第一数据帧的方式进行示例介绍:
第一客户端211-1在获得第一用户的第一数据包,第二用户的第一数据包,以及第三用户的第一数据包之后,可以将每个数据包中操作数据按照预设顺序组合成数据帧,从而获得第一数据帧。预设顺序可以是任意的,本申请不做限定。预设顺序例如可以是按照各个用户加入游戏的先后顺序设置,例如第一用户先加入游戏,第二用户在第一用户之后加入游戏,第三用户在第二用户之后加入游戏,那么组成数据帧时,可以是按照第一用户的操作数据、第二用户的操作数据和第三用户的操作数据依次排列组成数据帧。
进一步地,由于第一客户端211-1可能会接收到某个客户端发送的多个数据包,因此第一客户端211-1可以根据各个数据包的数据包标识,选择与第一用户的第一数据包的数据包标识相同的其他用户的数据包进行组帧,以获得同样时间段的所有用户的操作数据。
同理,第三客户端211-2和第四客户端211-3均可以按照同样的方式,获得第一数据帧。由于参与该游戏对局中各个客户端均能获得参与游戏对局的所有客户端的数据包,因此各个客户端根据这些数据包组成的数据帧也是相同的。
例如,请参照图5,为一种数据帧的示例图,该数据帧依次包括第一用户的第一数据包中的操作数据I1,第二用户的第一数据包中的操作数据I2,以及第三用户的第一数据包中的操作数据I3,将I1、I2和I3组成数据帧,即数据帧可以表示为:(I1+I2+I3)。
S312,各个客户端根据第一数据帧,更新显示画面。
各个客户端更新显示画面的方式相同,下面以第一目标客户端211-1更新显示画面为例,进行介绍:
第一目标客户端211-1在获得第一数据帧之后,可以将第一数据帧发送给第一目标客户端211-1中的呈现模块,由呈现模块根据第一数据帧中的各个操作,分别确定各个操作数据对应的游戏角色的当前状态,根据各个操作数据对应的游戏角色的当前状态,更新客户端的显示画面。游戏角色的状态用于表示游戏角色在显示画面中的呈现状态,例如游戏角色的位置和速度等。
例如,第一客户端211-1显示的初始画面具体如图6中(1)所示,在图6中(1)中包括两个队伍,红队包括ID2和ID3所示的游戏角色,蓝队包括ID1所示的游戏角色,在游戏开始时,各个游戏角色的血条601是满血。第一用户在第一客户端211-1进行了第三技能602的释放操作,其他用户未做任何操作,第一客户端211-1接收各个用户对应的操作数据,组成第一数据帧。第一客户端211-1根据第一数据帧,更新显示画面,具体显示如图6中(2)所示的显示画面,图6中(2)显示有该ID1所示的游戏角色释放的技能特效603,显示ID2所示的游戏角色的血条中的血量减少,以及显示第三技能602处于倒计时10秒的冷却状态。除此之外,在图6中(1)中还显示有红队的总体战斗力604,以及蓝队的总体战斗力605,总体战斗力可以理解为该团队中各个游戏角色的战斗力的加权之和。
由于不同的客户端开始游戏对局的时间可能不完全一致,以及各个客户端的计时器的精度等差异,均可能会导致各个客户端的时间不一样,随着游戏对局的持续,各个客户端之间的时间误差可能会积累。
例如,继续参照图4,假设客户端P1的时间比客户端P2更快,客户端P1的当前时间对应发送第10个数据包,客户端P2的当前时间对应发送第5个数据包。此时,客户端P1在更细显示画面时,实际缺少对应的客户端P2第6个至第10个数据包中的操作数据,因此客户端P1不能针对第6个数据包至第10个数据包组成完整的数据帧,这样就不能将数据帧提交到呈现模块,从而造成了客户端显示画面的更新延迟。
因此,为了解决上述问题,尽量保持各个客户端之间的同步,在本申请实施例中,多人协作的多个客户端中可以包括一个主客户端,除了主客户端之外,其余的客户端都视为从客户端,或者称为次客户端。各个从客户端可以根据与主客户端之间的时间误差,调整自身发送数据包的发送频率,进而保持各个客户端之间的时间尽量同步。下面以第三客户端211-2为主客户端,第一客户端211-1和第四客户端211-3为从客户端进行示例介绍时间同步的过程:
S313,第一客户端211-1向第三客户端211-2发送测速探测包。
第一客户端211-1可以是以固定的探测周期向主客户端发送测速探测包,该探测周期可以是客户端设置的,例如可以根据客户端的收发数据能力确定,具体例如每秒发送一次。测速探测包用于探测第一客户端211-1与第三客户端211-2之间的收发数据包的时延值。
S314,第三客户端211-2向第一客户端211-1发送测速应答包。
第三客户端211-2在接收第一客户端211-1发送的测速探测包之后,可以向第一客户端211-1反馈测速应答包,该测速应答包实际可以直接是测速探测包,即第三客户端211-2在接收测速探测包之后,直接将测速探测包立即反馈给第一客户端211-1。
S315,第一客户端211-1确定第一客户端211-1与第三客户端211-2之间的时间误差。
由于在不同时刻可能对应的时间误差的取值会发生变化,时间误差是指在该时刻确定出的时间误差。时间误差是指主客户端的当前时间与第一客户端211-1的当前时间之间的时间差。第一客户端211-1可以直接记录有自身的当前时间,或者根据发送数据包的数据包标识以及发送数据包的预设时间间隔,确定自身的当前时间。但第一客户端211-1无法直接获得第三客户端的当前时间,下面对第一客户端211-1确定第三客户端211-2的时间进行示例说明:
例如第一客户端211-1可以向第三客户端211-2请求第三客户端211-2的当前时间,进而确定时间误差。
或者例如,第一客户端211-1可以根据发送测速探测包的时间,与接收测速应答包的时间,确定与第三客户端211-2之间的时延值。第一客户端211-1可以根据该时延值,接收的主客户端发送的数据包的数据包标识的最大值、以及预设时间间隔,确定出第一客户端211-1和第三客户端211-2之间的第一时间误差。接收的主客户端发送的数据包的数据包标识的最大值是指第一客户端211-1接收到的主客户端发送的数据包标识的最大值。其中,计算时间误差的公式具体表示如下:
[时间误差]=[主客户端的当前时间]-[次客户端的当前时间] (1)
[主客户端的当前时间]=[从主客户端收到的数据包的最大值*预设时间间隔]+[时延值]/2 (2)
其中,从主客户端收到的数据包的最大值*预设时间间隔可以理解为主客户端的当前绝对时间,而时延值除以2可以理解为发送数据包的延迟。
由于在不是的时间段,主客户端与第一客户端211-1之间的时间误差会发生变化,因此当前时间确定出的时间误差又可以称为当前时间误差。
在当前时间确定出的时间误差又可以视为当前时间误差。
应当说明的是,S315~S316的部分与S305~S306的部分的顺序可以是任意的,具体不做限制。
S316,第一客户端211-1根据第一用户的操作,生成第二数据包。
随着游戏进行,第一客户端211-1可以根据第一用户在下一个预设时长内的操作,生成第二数据包。第二数据包包括第一用户在下一个预设时长内的操作数据。
应当说明的是,第二数据包与第一数据包是第一用户在不同时间段产生的操作数据生成的。在处理第二数据包时,第二数据包也可以视为当前数据包。进一步地,第二数据包还可以包括数据包标识。
S317,第一客户端211-1根据时间误差,调整预设时间间隔。
如果主客户端与第一客户端211-1之间的时间误差不属于预设范围内,则根据时间误差,调整预设时间间隔,以达到调整时间误差的目的。
具体的,如果主客户端与第一客户端211-1之间的时间误差大于预设范围的最大值,这种情况就表示第一客户端211-1的时间比主客户端的时间慢得多,即第一客户端211-1的时间较慢,因此第一客户端211-1可以减少预设时间间隔,即提高发送数据包的频率。
如果第一客户端211-1的时间误差大于预设范围的最大值,且小于第一阈值,该阈值大于预设范围的最大值,那么表示第一客户端211-1只是相较于主客户端只是稍微慢了一些,这种情况下,可以将预设时间间隔的取值增加为第一值,以第一值为发送数据包的周期。如果第一客户端211-1的时间误差大于预设范围的最大值,且大于第一阈值,那么表示第一客户端211-1只是相较于主客户端慢了较多,这种情况下,可以采用一次性调整的方式,例如将预设时间间隔调整为零,无需等待直接发送数据包。
如果第一客户端211-1的时间误差小于预设范围的最小值,那么表示第一客户端211-1比主客户端的时间更快,因此可以增加预设时间间隔,即降低发送数据包的频率,因此可以增加预设时间间隔,以增加后的预设时间间隔为发送数据包的周期。
具体如果第一客户端211-1的时间误差小于预设范围的最小值,且大于第二阈值,第二阈值比预设范围的最小值更小,则表示第一客户端211-1比主客户端的时间快了一点,因此可以稍微增加,例如将预设时间间隔的取值增加为第二值,以第二值为周期发送数据包。
具体如果第一客户端211-1的时间误差小于预设范围的最小值,且小于第二阈值,那么表示第一客户端211-1比主客户端的时间快了较多,因此可以在预设时间间隔的基础上增加时间误差获得第三值,在达到第三值之后,再发送数据包。这样可以一次性将时间误差调整到位。
如果第一客户端211-1的时间误差位于预设范围内,则确定不对预设时间间隔进行调整,即第一客户端211-1仍以预设时间间隔为周期向其他客户端发送数据包。
下面结合图7所示的一种调整时间的示例图进行示例介绍:
(1)如果第一客户端211-1的时间误差在预设范围内,图7中预设范围以[-a,a]为例,则第一客户端211-1不调整预设时间间隔。
(2)如果第一客户端211-1的时间误差大于预设范围内最大值,且小于第一阈值,即时间误差属于在(a,b]区间内,表示第一客户端211-1的时间比主客户端的时间慢。因此第一客户端211-1可以以0.8*预设时间间隔作为发数据包的周期,直到时间误差小于或等于0。例如原始的预设时间间隔为1/30,那么目前的预设时间间隔应当调整为0.8*1/30。
(3)如果第一客户端211-1的时间误差大于预设范围内最大值,且大于第一阈值,即时间误差处于(b,+inf)区间内,表示第一客户端211-1的时间比主客户端的时间慢得多,因此可以直接发送数据包,无需等待,直到时间误差小于或等于0。+inf表示无限大。
(4)如果第一客户端211-1的时间误差小于预设范围内最小值,且大于第二阈值,即时间误差处于[-b,-a)区间内,表示第一客户端211-1的时间比主客户端的时间快,因此可以以1.2*预设时间间隔作为发送数据包的周期,直到时间误差大于或等于0。
(5)如果第一客户端211-1的时间误差小于预设范围内最小值,且小于第二阈值,即时间误差处于(-inf,b)区间内,表示第一客户端211-1的时间比主客户端的时间快得多,因此可以以(预设时间间隔+时间误差)作为发送数据包的周期,直到时间误差大于或等于0。-inf表示无限小。
应当说明的是,在调整预设时间间隔之后,是在下一次发送数据包时,以调整后的预设时间间隔发送数据包,而此时还并未生成或是发送的数据包可以理解为后续数据包,也就是说在第一数据包之后产生的数据包。
应当说明的是,S317和S316的步骤顺序可以是任意的。
S318,第一客户端211-1将第二数据包发送给其他客户端。
如果第一客户端211-1调整了预设时间间隔,那么第一客户端211-1按照S317的方式调整预设时间间隔,在达到调整后预设时间间隔之后,将第二数据包发送给第三客户端211-2和第四客户端211-3。
如果第一客户端211-1没有调整预设时间间隔,那么在达到预设时间间隔后,将第二数据包发送给第三客户端211-2和第四客户端211-3。
S319,第四客户端211-3向第三客户端211-2发送测速探测包。
S320,第三客户端211-2向第四客户端211-3反馈测速应答包。
S321,第四客户端211-3确定时间误差。
第四客户端211-3根据发送测速探测包的时间,以及测速应答包的时间之间的差值,获得与主客户端之间的时延值,并按照上述公式(1)和公式(2)计算出主客户端与第四客户端211-3之间的时间误差,确定时间误差的内容可以参照前文的内容,此处不再赘述。
S322,第四客户端211-3根据第三用户的操作,生成第三用户的第二数据包。
第三用户的第二数据包包括下一个预设时长内采集的第三用户的操作数据。
S323,第四客户端211-3根据时间误差,调整预设时间间隔。
第四客户端211-3调整预设时间间隔的内容可以参照前文论述的第一客户端211-1调整预设时间间隔的内容,此处不再赘述。
应当说明的是,S322和S323的步骤顺序可以是任意的,此处不再赘述。
S324,第四客户端211-3将第三用户的第二数据包发送给其他客户端。
如果第四客户端211-3调整了预设时间间隔,那么第四客户端211-3按照S317的方式调整预设时间间隔,在达到调整后预设时间间隔之后,将第二数据包发送给第三客户端211-2和第一客户端211-1。
如果第四客户端211-3没有调整预设时间间隔,那么在达到预设时间间隔后,将第二数据包发送给第三客户端211-2和第一客户端211-1。
S325,第三客户端211-2根据第二用户的操作,生成第二用户的第二数据包。
第三客户端211-2根据第二用户在下一个预设时长内的操作,生成第二用户的第二数据包。
应当说明的是,S325、S316和S322的步骤顺序可以是同步的。
S326,第三客户端211-2将第二数据包发送给其他客户端。
第三客户端211-2为主客户端,因此无需调整其时间,只需以预设时间间隔为预设时间间隔,发送数据包即可,因此第三客户端211-2获得第二数据包之后,在达到预设时间间隔之后,将第二数据包发送给第一客户端211-1和第四客户端211-3即可。
作为一种实施例,第一客户端211-1在执行S327之后,继续重复S312~S315的步骤,从而获得在发送第二数据包之后,主客户端与第一客户端211-1之间的时间误差,如果确定该时间误差已处于预设范围内,则第一客户端211-1不调整预设时间间隔,在达到预设时间间隔之后,发送后续数据包。或者,如果确定时间误差仍不处于预设范围内,则第一客户端211-1仍按照调整后的预设时间间隔,发送后续数据包。其他客户端调整预设时间间隔的方式相同,此处不再赘述。
S327,各个客户端分别根据各个第二数据包,组成第二数据帧。
各个客户端组成数据帧的方式是相同的,下面以第一客户端211-1为例进行介绍:
第一客户端211-1接收其他客户端发送的第二数据包之后,可以将各个第二数据包中的操作数据按照预设顺序进行组合,获得第二数据帧。应当说明的是,任意被处理的数据帧都可以视为当前数据帧。
S328,各个客户端根据第二数据帧,更新显示画面。
每个客户端都能分别组帧,获得第二数据帧,在获得第二数据帧之后,可以根据第二数据帧中的操作数据,分别更新各个游戏角色状态,从而更新显示画面。
在游戏过程中,会不断重复S305~S328的过程,从而实现游戏过程中各个客户端的数据同步的过程。
本申请实施例提供一种数据同步装置,装置设置在用于多人协作的目标应用所对应的客户端中,多人协作中各个协作用户的客户端之间通信连接,请参照图8,装置包括:
生成模块801,用于在根据上一数据帧更新自身的显示画面后,根据第一协作用户在第一客户端中的操作数据,生成第一客户端的当前数据包;
收发模块802,用于将第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端;以及,分别接收各个第二客户端分别发送的当前数据包;
组帧模块803,用于将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得第一客户端的当前数据帧;
更新模块804,用于根据当前数据帧,更新第一客户端的显示画面。
在一种可能的实施例中,第一协作用户的当前数据包和各个其他协作用户的当前数据包均包括数据包标识,数据包标识用于指示客户端生成数据包的次序;组帧模块803具体用于:
确定与第一客户端的当前数据包标识相同的各个其他协作用户的当前数据包;
将第一客户端的当前数据包中的操作数据,与确定出的各个其他协作用户的当前数据包中的操作数据组成当前数据帧。
在一种可能的实施例中,若各个其他协作用户的第二客户端包括一个主客户端,装置设置在从客户端中;收发模块802具体用于:
若当前时间误差不处于预设范围内,则调整预设的预设时间间隔;其中,当前时间误差是指主客户端的当前时间与第一客户端的当前时间之间的时间差值;
在达到调整后的预设时间间隔后,将第一客户端的当前数据包发送给各个其他协作用户的第二客户端。
在一种可能的实施例中,收发模块802具体用于:
若当前时间误差大于预设范围的最大值,则将减少预设的预设时间间隔,在达到减少后的预设时间间隔后,将第一客户端的当前数据包发送给各个其他协作用户的第二客户端;其中,当前时间误差是指主客户端的当前时间与第一客户端的当前时间之间的时间差值;
若当前时间误差小于预设范围的最小值,则将增加预设时间间隔,在达到增加后的预设时间间隔后,将第一客户端的当前数据包发送给各个其他协作用户的第二客户端。
在一种可能的实施例中,收发模块802还用于:
若主客户端与第一客户端之间的时间误差已处于预设范围内,则以预设时间间隔为周期,向各个其他协作用户的第二客户端发送后续数据包;
其中,后续数据包在根据当前数据帧更新自身的显示画面后,根据第一协作用户在第一客户端中的操作数据生成的。
在一种可能的实施例中,装置还包括确定模块805,其中:
收发模块802,还用于向主客户端发送测速探测包,并接收主客户端反馈的测速应答包;
确定模块805,还用于根据发送测速探测包的时间和接收测速应答包的时间,确定第一客户端与主客户端之间的当前时延值;
根据当前时延值、接收的主客户端发送的当前数据包的数据包标识的最大值、以及预设时间间隔,确定主客户端与第一客户端之间的当前时间误差。
在一种可能的实施例中,装置还包括建立模块806,其中:
生成模块801,还用于响应于请求游戏操作,生成游戏请求;
收发模块802,还用于在将游戏请求发送给服务器后,接收服务器反馈的参与本次游戏的各个其他协作用户的客户端的通信地址;
建立模块806,用于根据各个其他协作用户的客户端的通信地址,建立第一客户端与各个其他协作用户的第二客户端之间的通信连接。
在一种可能的实施例中,更新模块804具体用于:
根据当前数据帧中的各个操作数据,确定各个操作数据对应的游戏角色的当前状态;
根据各个操作数据对应的游戏角色的当前状态,更新第一客户端的显示画面。
图8所示的装置还可以用于实现前文论述的任一数据同步方法,此处不再赘述。
基于同一发明构思,本申请实施例提供一种计算机设备900,请参照图9,该计算机设备包括处理器901和存储器902。
处理器901可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器902和处理器901之间的具体连接介质。本申请实施例在图9中以存储器902和处理器901之间通过总线903连接,总线903在图9中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线903可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器902可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器902也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器902可以是上述存储器的组合。
处理器901,用于调用存储器902中存储的计算机程序时执行如前文论述的任一的数据同步方法,还可以用于实现图8所示的装置的功能。
基于同一发明构思,本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行前文论述的任一的数据同步方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
基于同一发明构思,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据同步方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种数据同步方法,其特征在于,用于多人协作的目标应用所对应的客户端中,所述多人协作中各个协作用户的客户端之间通信连接,所述方法包括:
第一协作用户的第一客户端在根据上一数据帧更新自身的显示画面后,根据所述第一协作用户在所述第一客户端中的操作数据,生成所述第一客户端的当前数据包;
将所述第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端;
分别接收各个第二客户端分别发送的当前数据包;
将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得所述第一客户端的当前数据帧;
根据所述当前数据帧,更新所述第一客户端的显示画面。
2.如权利要求1所述的方法,其特征在于,所述第一协作用户的当前数据包和各个其他协作用户的当前数据包均包括数据包标识,所述数据包标识用于指示客户端生成数据包的次序;所述将第一客户端的当前数据包,以及各个第二客户端分别发送的当前数据包中的操作进行组合,获得所述第一客户端的当前数据帧,具体包括:
确定与所述第一客户端的当前数据包标识相同的各个其他协作用户的当前数据包;
将所述第一客户端的当前数据包中的操作数据,与确定出的各个其他协作用户的当前数据包中的操作数据组成当前数据帧。
3.如权利要求1所述的方法,其特征在于,若所述各个其他协作用户的第二客户端包括一个主客户端,所述第一客户端为从客户端;所述将所述第一客户端的当前数据包分别发送给各个其他协作用户的第二客户端,具体包括:
若当前时间误差不处于预设范围内,则调整预设的预设时间间隔;其中,所述当前时间误差是指所述主客户端的当前时间与所述第一客户端的当前时间之间的时间差值;
在达到调整后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端。
4.如权利要求3所述的方法,其特征在于,所述若当前时间误差大于预设范围的最大值,则将增加预设的预设时间间隔,在达到调整后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端,具体包括:
若当前时间误差大于预设范围的最大值,则将减少预设的预设时间间隔,在达到减少后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端;其中,所述当前时间误差是指所述主客户端的当前时间与所述第一客户端的当前时间之间的时间差值;
若当前时间误差小于预设范围的最小值,则将增加预设时间间隔,在达到增加后的预设时间间隔后,将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端。
5.如权利要求3所述的方法,其特征在于,在所述将所述第一客户端的当前数据包发送给所述各个其他协作用户的第二客户端之后,所述方法还包括:
若所述主客户端与所述第一客户端之间的时间误差已处于所述预设范围内,则以所述预设时间间隔为周期,向所述各个其他协作用户的第二客户端发送后续数据包;
其中,所述后续数据包在根据所述当前数据帧更新自身的显示画面后,根据所述第一协作用户在所述第一客户端中的操作数据生成的。
6.如权利要求3~5任一项所述的方法,其特征在于,所述方法还包括:
向所述主客户端发送测速探测包,并接收所述主客户端反馈的测速应答包;
根据发送所述测速探测包的时间和接收测速应答包的时间,确定所述第一客户端与所述主客户端之间的当前时延值;
根据所述当前时延值、接收的所述主客户端发送的当前数据包的数据包标识的最大值、以及所述预设时间间隔,确定所述主客户端与所述第一客户端之间的当前时间误差。
7.如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
响应于请求游戏操作,生成游戏请求;
在将所述游戏请求发送给服务器后,接收所述服务器反馈的参与本次游戏的各个其他协作用户的客户端的通信地址;
根据所述各个其他协作用户的客户端的通信地址,建立所述第一客户端与所述各个其他协作用户的第二客户端之间的通信连接。
8.如权利要求7所述的方法,其特征在于,所述根据所述当前数据帧,更新所述第一客户端的显示画面,具体包括:
根据所述当前数据帧中的各个操作数据,确定各个操作数据对应的游戏角色的当前状态;
根据各个操作数据对应的游戏角色的当前状态,更新所述第一客户端的显示画面。
9.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1~8中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~8中任一项所述的方法。
CN202011121903.7A 2020-10-20 2020-10-20 一种数据同步方法、设备及介质 Pending CN114432693A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011121903.7A CN114432693A (zh) 2020-10-20 2020-10-20 一种数据同步方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011121903.7A CN114432693A (zh) 2020-10-20 2020-10-20 一种数据同步方法、设备及介质

Publications (1)

Publication Number Publication Date
CN114432693A true CN114432693A (zh) 2022-05-06

Family

ID=81356946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011121903.7A Pending CN114432693A (zh) 2020-10-20 2020-10-20 一种数据同步方法、设备及介质

Country Status (1)

Country Link
CN (1) CN114432693A (zh)

Similar Documents

Publication Publication Date Title
US10500505B2 (en) Techniques to interact with an application via messaging
CN110765744A (zh) 多人协同文档编辑方法及***
RU2591670C2 (ru) Способ и устройство обработки анимированной эмограммы
JP6974458B2 (ja) コンテキストアウェアゲーム情報を生成するためのゲームサーバおよび方法
US10828563B2 (en) Information processing system, server, storage medium storing information processing program, and information processing method
CN111625353B (zh) 虚拟资源分发处理方法、装置、服务器及存储介质
WO2023046102A1 (zh) 行为壁纸解锁方法、装置及电子设备
CN112169327A (zh) 一种云游戏的控制方法以及相关装置
CN111672132A (zh) 游戏的控制方法、控制装置、服务器和存储介质
CN111111182B (zh) 一种游戏视角确定方法、装置和服务器
CA2833346C (en) Reducing latency for served applications by anticipatory preprocessing
WO2023103571A1 (zh) 游戏管理方法、装置、设备及计算机可读存储介质
CN114885199B (zh) 实时互动方法、装置、电子设备、存储介质及***
CN114432693A (zh) 一种数据同步方法、设备及介质
CN105429981A (zh) 游戏语音传输方法、终端、语音服务模块及游戏***
EP2861313B1 (en) Processing system, information processing apparatus, control method, program and storage medium
JP2021023528A (ja) プログラム、情報処理方法、及び情報処理装置
Font et al. Network traffic analysis and evaluation of a multi-user virtual environment
WO2023173648A1 (zh) 游戏中的处理方法、装置、终端设备及存储介质
US20240165505A1 (en) Non-transitory computer-readable storage medium with executable information processing program stored thereon, game system, game device, and information processing method
CN110585714B (zh) 基于区块链的ugc元素设置方法、装置及设备
CN117812070A (zh) 信息处理方法、终端、服务器、电子设备及存储介质
CN117082441A (zh) 数据传输方法、装置、电子设备及计算机存储介质
CN115297340A (zh) 虚拟空间互动方法、装置、电子设备、服务器及存储介质
CN115487489A (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