CN111953782A - 一种多通道数据的同步方法、装置、介质及设备 - Google Patents
一种多通道数据的同步方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN111953782A CN111953782A CN202010815897.9A CN202010815897A CN111953782A CN 111953782 A CN111953782 A CN 111953782A CN 202010815897 A CN202010815897 A CN 202010815897A CN 111953782 A CN111953782 A CN 111953782A
- Authority
- CN
- China
- Prior art keywords
- client
- heartbeat
- server
- clients
- reply 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012544 monitoring process Methods 0.000 claims abstract description 31
- 230000001360 synchronised effect Effects 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 10
- 239000002609 medium Substances 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了一种多通道数据的同步方法、装置、介质及设备。该方法包括:若检测到程序启动,则读取配置文件中的信息,以确定同步参数;若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。通过采用本申请所提供的技术方案,可以在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
Description
技术领域
本发明实施例涉及虚拟现实技术领域,尤其涉及一种多通道数据的同步方法、装置、介质及设备。
背景技术
随着科技水平的快速发展,虚拟现实的使用尤为收到广大用户的关注。目前,虚拟现实沉浸式大屏追踪环境大多由一台或多台负责渲染的计算机组成,由一台渲染计算机组成的单屏或多屏沉浸式环境称为单通道环境,由多台渲染计算机组成的多屏沉浸式环境称为多通道环境。
由于环境中不可避免会有多台计算机的情况,因此在启动虚拟现实内容应用程序后,如何保证各渲染机屏幕画面的持续拼接以及交互逻辑的一致性,是一件非常重要且亟待解决的事情。
发明内容
本发明实施例提供一种多通道数据的同步方法、装置、介质及设备,采用帧同步网络技术,能够在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
第一方面,本发明实施例提供了一种多通道数据的同步方法,该方法包括:
若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
可选的,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
根据预设帧间隔向客户端发送帧消息,所述帧消息的ID逐次递增;以供各客户端对所述帧消息进行处理,以执行所述帧消息;
可选的,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
接收目标客户端发送的追踪数据,将所述追踪数据发送至所有客户端;其中,所述目标客户端为所述服务端所在的客户端。
可选的,通过所述监听线程确定客户端连接完成,包括:
通过读取配置文件中的信息,确定所有客户端的地址;
建立监听线程,若监听到所有客户端的地址均已连接,则确定客户端连接完成。
可选的,向各客户端返回心跳回复包,供各客户端按照预设计算规则计算实际延迟,包括:
各客户端返回心跳回复包,供客户端采用如下方式计算:
计算客户端接收到服务端心跳回复包的时间点与客户端给服务端发送心跳请求包的时间点的第一差值;
计算服务端给客户端发送心跳回复包的时间点与服务端接收到客户端心跳请求包的时间点的第二差值;
根据所述第一差值与第二差值的差,计算得各客户端的实际网络延迟。
可选的,向各客户端返回心跳回复包之后,所述方法还包括:
若检测到至少一个客户端退出连接,则向所有客户端发出退出连接指令,以控制所有客户端退出连接。
可选的,在若检测到程序启动,则读取配置文件中的信息之前,所述方法还包括:
构建配置文件,并根据配置文件确定服务端与客户端之间的通信协议采用KCP和UDP协议。
第二方面,本发明实施例还提供了一种在线多通道数据的同步装置,该装置包括:
同步参数确定模块,用于若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
监听线程建立模块,用于若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
心跳请求包接收模块,用于通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
心跳回复包发送模块,用于向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的多通道数据的同步方法。
第四方面,本申请实施例提供了一种移动设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的多通道数据的同步方法。
本申请实施例所提供的技术方案,若检测到程序启动,则读取配置文件中的信息,以确定同步参数;若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。通过采用本申请所提供的技术方案,可以在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
附图说明
图1是本发明实施例一提供的多通道数据的同步方法的流程图;
图2是本发明实施例二提供的多通道数据的同步装置的结构示意图;
图3是本申请实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
首先,本方案的实现,可以是基于如下前提:
网络模块区分服务端和客户端。
将应用程序区分为服务端和客户端,但是和大部分需要区分服务端和客户端的应用程序不同的是,因为考虑到成本控制、程序启动自由、便捷性等原因,本产品不希望单独设立一台计算机作为服务器。
因此,程序会在启动后,通过网络模块首先解析配置文件中提前记录好的信息来判断自身是否是服务端,如果是服务端,那自身既为服务端,又为客户端,其他计算机则为客户端。
确定网络传输通讯协议。
根据本程序所处的网络环境,确定UDP作为底层网络传输通讯协议,但考虑到UDP协议是不可靠协议,即会出现网络数据丢包、不保证前后顺序等问题,因此选择使用UDP+KCP的方案实现可靠UDP传输。另外,在用户登录准备阶段时,使用TCP作为网络传输通讯协议,保证用户登录的可靠性。
规定同步逻辑中的参数设置。
规定在同步逻辑中需要用到的参数,以便在实现同步算法流程中,便捷地运用这些提前设置好的参数,具体有:服务端IP地址、服务端网络端口、本地客户端IP地址、服务端帧间隔、心跳包帧间隔、服务端判断客户端超时掉线的时间、客户端判断服务端超时掉线的时间、客户端帧率倍数。
规定同步消息数据协议。
首先,需要规定消息类型,具体有:同步准备、同步开始、追踪数据、同步退出、心跳包、自定义消息。然后,需要规定消息数据,具体有:消息类型、消息来源的玩家ID、消息目标的玩家ID、追踪数据、Ping值时间戳、自定义消息。最后,需要规定客户端发送给服务端的数据的上行协议和服务端发送给客户端的数据下行协议,上行协议具体有:会话ID、消息列表,下行协议具体有帧ID、消息列表。
实施例一
图1是本发明实施例一提供的多通道数据的同步方法的流程图,本实施例可适用于多通道数据的同步的情况,该方法可以由本发明实施例所提供的多通道数据的同步装置来执行,该装置可以由软件和/或硬件的方式来实现,并可集成于用于虚拟现实的人体追踪终端等电子设备中。
如图1所示,所述多通道数据的同步方法包括:
S110、若检测到程序启动,则读取配置文件中的信息,以确定同步参数。
其中,配置文件可以是预先设置的,其中,可以确定服务端与客户端的IP地址,服务类型,以及通信协议等数据。
在本实施例中,可选的,在若检测到程序启动,则读取配置文件中的信息之前,所述方法还包括:
构建配置文件,并根据配置文件确定服务端与客户端之间的通信协议采用KCP和UDP协议。
首先,同步模块读取配置文件进行参数初始化,可以是首先,程序启动后,同步模块会读取配置文件中的信息,根据读取到的信息对同步的参数进行设置,具体有服务端IP地址、客户端IP地址、本机是否是服务端。如果本机是服务端,那同时本机也是客户端;如果本机不是服务端,那就是客户端。其次,如果本机是服务端,则会初始化需要发送的追踪数据,包括所有追踪物体的VRPN序号、位置、旋转、缩放,所有追踪控制器的VRPN(Virtual-Reality Peripheral Network,虚拟现实外围网络)序号、按键状态、输入轴值。最后,如果本机是服务端,则根据配置文件中记录的信息判断环境是单通道环境还是多通道环境,如果是多通道环境,就启动网络逻辑,否则就依靠客户端本地模拟。
服务器等待所有客户端进行连接,可以是如果服务端启动了网络逻辑,则会使用TCP网络协议开启监听线程,等待所有客户端进行连接,根据读取到的配置文件的信息,可以知道所有的客户端IP地址,每监听到一个客户端则会统计一个,直到统计到所有的客户端都已连接后,服务端会使用TCP网络传输协议向所有客户端广播发送同步准备消息,通知所有客户端准备开始同步。最后,创建同步对局、会话列表、玩家列表、KCP和UDP协议,将每一个客户端视为一个玩家,等待所有玩家的同步开始消息。
客户端登录并连接至服务端。程序启动后,同步模块读取配置文件中的信息,如果本机是客户端,则视为已登录,启动网络逻辑,使用TCP网络协议连接服务端。当所有客户端都连接至服务端后,服务端会通过TCP网络传输协议向所有客户端广播发送同步准备消息。客户端接收到此同步准备消息后,会视为服务端通知自己准备开始进行同步,此时会创建KCP和UDP协议,向服务端发送同步开始消息。
服务端广播通知所有客户端同步开始。服务端在创建同步对局后,如果收到了所有客户端发送过来的同步开始消息,则会通过KCP和UDP协议向所有客户端广播发送同步开始消息。并且,服务端会开始根据初始化时设置的帧间隔启动一个定时驱动线程,每隔一个帧间隔的时间,就向所有客户端以发送KCP和UDP协议消息的方式下发帧消息,帧ID每次都会加1。
客户端接收帧消息并执行帧。各客户端在接收到服务端下发的帧消息后,会执行这一帧,执行的内容有:计算逻辑帧率、刷新物理系统、广播执行帧同步生命周期,继而让整个画面渲染和交互逻辑得以依据服务端下发的帧间隔而定时刷新,达到了同步所需的相同的帧执行时机。同时,在执行这一帧之前,会使用帧缓冲控制器来判断是要选择正常执行帧,还是缓冲等待,还是倍速追帧,以减缓因网络延迟而造成的帧抖动问题,使每一个因网络延迟而造成间隔不一致的帧的间隔趋于平缓和相等。
S120、若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程。
具体的,同步模块读取配置文件进行参数初始化。首先,程序启动后,同步模块会读取配置文件中的信息,根据读取到的信息对同步的参数进行设置,具体有服务端IP地址、客户端IP地址、本机是否是服务端。如果本机是服务端,那同时本机也是客户端;如果本机不是服务端,那就是客户端。其次,如果本机是服务端,则会初始化需要发送的追踪数据,包括所有追踪物体的VRPN序号、位置、旋转、缩放,所有追踪控制器的VRPN序号、按键状态、输入轴值。最后,如果本机是服务端,则根据配置文件中记录的信息判断环境是单通道环境还是多通道环境,如果是多通道环境,就启动网络逻辑,否则就依靠客户端本地模拟。
S130、通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包。
所有客户端会在同步开始后,每隔一个帧间隔的时间,记录本客户端Ping请求包的发送时间点,并将该时间点添加到心跳数据请求包中,向服务端发送心跳数据请求包。
在本方案中,可选的,通过所述监听线程确定客户端连接完成,包括:
通过读取配置文件中的信息,确定所有客户端的地址;
建立监听线程,若监听到所有客户端的地址均已连接,则确定客户端连接完成。
其中,服务端等待所有客户端进行连接。如果服务端启动了网络逻辑,则会使用TCP网络协议开启监听线程,等待所有客户端进行连接,根据读取到的配置文件的信息,可以知道所有的客户端IP地址,每监听到一个客户端则会统计一个,直到统计到所有的客户端都已连接后,服务端会使用TCP网络传输协议向所有客户端广播发送同步准备消息,通知所有客户端准备开始同步。最后,创建同步对局、会话列表、玩家列表、KCP和UDP协议,将每一个客户端视为一个玩家,等待所有玩家的同步开始消息。
客户端登录并连接至服务端。程序启动后,同步模块读取配置文件中的信息,如果本机是客户端,则视为已登录,启动网络逻辑,使用TCP网络协议连接服务端。当所有客户端都连接至服务端后,服务端会通过TCP网络传输协议向所有客户端广播发送同步准备消息。客户端接收到此同步准备消息后,会视为服务端通知自己准备开始进行同步,此时会创建KCP和UDP协议,向服务端发送同步开始消息。
可选的,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
根据预设帧间隔向客户端发送帧消息,所述帧消息的ID逐次递增;以供各客户端对所述帧消息进行处理,以执行所述帧消息。
服务端广播通知所有客户端同步开始。服务端在创建同步对局后,如果收到了所有客户端发送过来的同步开始消息,则会通过KCP和UDP协议向所有客户端广播发送同步开始消息。并且,服务端会开始根据初始化时设置的帧间隔启动一个定时驱动线程,每隔一个帧间隔的时间,就向所有客户端以发送KCP和UDP协议消息的方式下发帧消息,帧ID每次都会加1。
客户端接收帧消息并执行帧。各客户端在接收到服务端下发的帧消息后,会执行这一帧,执行的内容有:计算逻辑帧率、刷新物理系统、广播执行帧同步生命周期,继而让整个画面渲染和交互逻辑得以依据服务端下发的帧间隔而定时刷新,达到了同步所需的相同的帧执行时机。同时,在执行这一帧之前,会使用帧缓冲控制器来判断是要选择正常执行帧,还是缓冲等待,还是倍速追帧,以减缓因网络延迟而造成的帧抖动问题,使每一个因网络延迟而造成间隔不一致的帧的间隔趋于平缓和相等。
进一步的,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
接收目标客户端发送的追踪数据,将所述追踪数据发送至所有客户端;其中,所述目标客户端为所述服务端所在的客户端。
服务端所在客户端发送追踪数据。因为多通道环境下的同步需要控制所有客户端的画面拼接和交互数据一致,因而需要保证所有客户端执行帧的次序一致,每一帧中的数据一致,即可达到同步效果。因此,需要同步的是每一个帧下发的时机和每一个帧中的追踪数据。而追踪数据在整个多通道环境中的来源就一个,不存在每个客户端都有各自的追踪数据,因此,需要同步的追踪数据就是服务端所在客户端的追踪数据。在同步开始后,服务端所在客户端会在每一帧中向服务端发送由追踪模块计算得出的追踪数据。
服务端接收追踪数据并广播转发给所有客户端。服务端在接收到客户端发送过来的追踪数据后,会将追踪数据添加到帧数据缓存中,并由定时驱动线程将当前帧数据广播分发给所有客户端。
客户端接收追踪数据并应用到3D物体上。所有的客户端在接收到服务端转发过来的追踪数据后,会通过二进制解析得到追踪数据,继而获得所有3D追踪物体的VRPN序号、位置、旋转、缩放,所有追踪控制器的VRPN序号、按键状态、输入轴值。然后,将这些追踪数据应用到本客户端的物体上,形成各个客户端物体数据的同步。
S140、向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
服务端收各客户端心跳请求包并回应各客户端心跳回复包。服务端在接收到各客户端发送来的心跳请求包后,记录服务端收到该客户端Ping请求包的接收时间点和服务端Ping回复包的发送时间点,并将两个时间点添加到心跳数据回复包中,再将心跳数据回复包添加到帧数据缓存中,由定时驱动线程将当前帧数据发送给指定的客户端。例如,服务端收到客户端A的心跳请求包,则会回复客户端A心跳回复包;收到客户端B的心跳请求包,则会回复客户端B心跳回复包。
在本实施例中,向各客户端返回心跳回复包,供各客户端按照预设计算规则计算实际延迟,包括:
各客户端返回心跳回复包,供客户端采用如下方式计算:
计算客户端接收到服务端心跳回复包的时间点与客户端给服务端发送心跳请求包的时间点的第一差值;
计算服务端给客户端发送心跳回复包的时间点与服务端接收到客户端心跳请求包的时间点的第二差值;
根据所述第一差值与第二差值的差,计算得各客户端的实际网络延迟。
具体的,客户端接收到服务端发送过来的心跳回复包后,会记录下客户端收到服务端Ping回复包的接收时间点,然后根据Ping值的定义,即Ping值为一个网络数据包来回的时间,继而运用公式:
Ping值=(客户端接收到服务端Ping回包的时间点(客户端本地时间)-客户端给服务端发送Ping请求包的时间点(客户端本地时间))-(服务端给客户端发送Ping回包的时间点(服务端本地时间)-服务端接收到客户端Ping请求包的时间点(服务端本地时间)),计算得出本地客户端的网络Ping值。
本申请实施例所提供的技术方案,若检测到程序启动,则读取配置文件中的信息,以确定同步参数;若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。通过采用本申请所提供的技术方案,可以在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
在上述技术方案的基础上,可选的,向各客户端返回心跳回复包之后,所述方法还包括:
若检测到至少一个客户端退出连接,则向所有客户端发出退出连接指令,以控制所有客户端退出连接。
服务端判断客户端超时并向所有客户端发送同步退出消息
当某个客户端退出程序时,服务端会实时根据接收该客户端上次发送过来的心跳请求包的时间判断该客户端是否超时掉线,如果判定超时,则会向所有客户端广播发送同步退出消息。
客户端接收同步退出消息并退出程序。客户端接收到服务端发送过来的同步退出消息后,可以得到具体的某一个客户端退出了同步,继而让本客户端也可以同步地退出程序,达到同步退出程序的目的。
客户端判断服务端超时并退出程序。客户端在执行帧的同时,会实时根据接收服务端上次发送过来的心跳回复包的时间判断该服务端是否超时掉线,如果判定超时,则会立即退出程序,达到同步退出程序的目的。
客户端本地模拟服务端下发帧。此步骤的先行条件是第1步的最后,如果本机是服务端,但是不是多通道环境,而是单通道环境,则不启动网络逻辑,因为环境中只有一台计算机。客户端本地模拟服务端下发帧的方法以及和网络逻辑中的区别是,在每一帧的最后都往帧缓存中添加下一帧的数据,包括+1后的帧ID、追踪数据、帧消息等,然后在每一次帧回合的开始都检查帧缓存中是否有帧数据,有就执行帧,执行后再往帧缓存中添加下一帧数据,以此方法往复循环,达到本地模拟服务端下发帧从而驱动帧回合的单通道环境同步逻辑。
至此,完成了沉浸式大屏追踪环境的多通道同步技术方案,实现在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致,解决同步问题。
实施例二
图2是本发明实施例二提供的多通道数据的同步装置的结构示意图。如图2所示,所述多通道数据的同步装置,包括:
同步参数确定模块210,用于若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
监听线程建立模块220,用于若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
心跳请求包接收模块230,用于通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
心跳回复包发送模块240,用于向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
本申请实施例所提供的技术方案,若检测到程序启动,则读取配置文件中的信息,以确定同步参数;若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。通过采用本申请所提供的技术方案,可以在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例三
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种多通道数据的同步方法,该方法包括:
若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的在线多通道数据的同步操作,还可以执行本申请任意实施例所提供的多通道数据的同步方法中的相关操作。
实施例四
本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的多通道数据的同步装置。图3是本申请实施例四提供的一种电子设备的结构示意图。如图3所示,本实施例提供了一种电子设备300,其包括:一个或多个处理器320;存储装置310,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器320运行,使得所述一个或多个处理器320实现本申请实施例所提供的多通道数据的同步方法,该方法包括:
若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
若评分网络模型的输出评分结果符合预设标准,则将当前图像状态确定为多通道数据的同步结果。
当然,本领域技术人员可以理解,处理器320还可以实现本申请任意实施例所提供的多通道数据的同步方法的技术方案。
图3显示的电子设备300仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图3所示,该电子设备300包括处理器320、存储装置310、输入装置330和输出装置340;电子设备中处理器320的数量可以是一个或多个,图3中以一个处理器320为例;电子设备中的处理器320、存储装置310、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线350连接为例。
存储装置310作为一种计算机可读存储介质,可用于存储软件程序、计算机可运行程序以及模块单元,如本申请实施例中的多通道数据的同步方法对应的程序指令。
存储装置310可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置310可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置310可进一步包括相对于处理器320远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置330可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏、扬声器等设备。
本申请实施例提供的电子设备,采用帧同步网络技术,能够在多通道环境下启动多台计算机上的虚拟现实内容应用程序后,确保内容交互和数据的一致性,从而使屏幕画面的拼接一致,内容逻辑一致。
上述实施例中提供的多通道数据的同步装置、介质及电子设备可运行本申请任意实施例所提供的多通道数据的同步方法,具备运行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的多通道数据的同步方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种多通道数据的同步方法,其特征在于,包括:
若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
2.根据权利要求1所述的方法,其特征在于,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
根据预设帧间隔向客户端发送帧消息,所述帧消息的ID逐次递增;以供各客户端对所述帧消息进行处理,以执行所述帧消息。
3.根据权利要求1所述的方法,其特征在于,在通过所述监听线程确定客户端连接完成之后,所述方法还包括:
接收目标客户端发送的追踪数据,将所述追踪数据发送至所有客户端;其中,所述目标客户端为所述服务端所在的客户端。
4.根据权利要求1所述的方法,其特征在于,通过所述监听线程确定客户端连接完成,包括:
通过读取配置文件中的信息,确定所有客户端的地址;
建立监听线程,若监听到所有客户端的地址均已连接,则确定客户端连接完成。
5.根据权利要求1所述的方法,其特征在于,向各客户端返回心跳回复包,供各客户端按照预设计算规则计算实际延迟,包括:
各客户端返回心跳回复包,供客户端采用如下方式计算:
计算客户端接收到服务端心跳回复包的时间点与客户端给服务端发送心跳请求包的时间点的第一差值;
计算服务端给客户端发送心跳回复包的时间点与服务端接收到客户端心跳请求包的时间点的第二差值;
根据所述第一差值与第二差值的差,计算得各客户端的实际网络延迟。
6.根据权利要求1所述的方法,其特征在于,向各客户端返回心跳回复包之后,所述方法还包括:
若检测到至少一个客户端退出连接,则向所有客户端发出退出连接指令,以控制所有客户端退出连接。
7.根据权利要求1所述的方法,其特征在于,在若检测到程序启动,则读取配置文件中的信息之前,所述方法还包括:
构建配置文件,并根据配置文件确定服务端与客户端之间的通信协议采用KCP和UDP协议。
8.一种多通道数据的同步装置,其特征在于,包括:
同步参数确定模块,用于若检测到程序启动,则读取配置文件中的信息,以确定同步参数;
监听线程建立模块,用于若根据所述同步参数确定当前设备为服务端,则初始化追踪数据;并开启监听线程;
心跳请求包接收模块,用于通过所述监听线程确定客户端连接完成,并接收所有客户端按照预设帧间隔上报的心跳请求包;
心跳回复包发送模块,用于向各客户端返回心跳回复包,其中,所述心跳回复包包括心跳请求包的接收时间和心跳回复包的发送时间;供各客户端按照预设计算规则计算实际延迟。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的多通道数据的同步方法。
10.一种移动设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一所述的多通道数据的同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815897.9A CN111953782A (zh) | 2020-08-14 | 2020-08-14 | 一种多通道数据的同步方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010815897.9A CN111953782A (zh) | 2020-08-14 | 2020-08-14 | 一种多通道数据的同步方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111953782A true CN111953782A (zh) | 2020-11-17 |
Family
ID=73341959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010815897.9A Pending CN111953782A (zh) | 2020-08-14 | 2020-08-14 | 一种多通道数据的同步方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111953782A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860191A (zh) * | 2021-03-02 | 2021-05-28 | 深圳市东方聚成科技有限公司 | 一种基于多通道的同步分道存储方法 |
CN113965496A (zh) * | 2021-10-15 | 2022-01-21 | 上汽通用五菱汽车股份有限公司 | 一种优化投屏进程响应的方法 |
CN115190334A (zh) * | 2022-06-01 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 一种状态沟通方法、装置、控制设备及可读存储介质 |
CN117544640A (zh) * | 2023-12-05 | 2024-02-09 | 中移互联网有限公司 | 局域网多设备行为同步的方法、装置、系统及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425891A (zh) * | 2008-12-09 | 2009-05-06 | 中兴通讯股份有限公司 | 时间同步方法、系统和客户端 |
US20170289609A1 (en) * | 2016-03-31 | 2017-10-05 | Le Holdings(Beijing)Co., Ltd. | Method and device for playing multimedia data synchronously |
CN107404514A (zh) * | 2017-06-08 | 2017-11-28 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN109040208A (zh) * | 2018-07-18 | 2018-12-18 | 广州多益网络股份有限公司 | 基于多客户端交互的数据同步方法、服务器、系统及介质 |
US10403050B1 (en) * | 2017-04-10 | 2019-09-03 | WorldViz, Inc. | Multi-user virtual and augmented reality tracking systems |
CN110958477A (zh) * | 2018-09-26 | 2020-04-03 | 株式会社理光 | 媒体数据播放的同步控制方法、装置及计算机可读介质 |
CN111176451A (zh) * | 2019-12-30 | 2020-05-19 | 上海曼恒数字技术股份有限公司 | 一种虚拟现实多通道沉浸式环境的控制方法及系统 |
US20200155946A1 (en) * | 2017-07-24 | 2020-05-21 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for synchronously displaying game content and storage medium |
-
2020
- 2020-08-14 CN CN202010815897.9A patent/CN111953782A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425891A (zh) * | 2008-12-09 | 2009-05-06 | 中兴通讯股份有限公司 | 时间同步方法、系统和客户端 |
US20170289609A1 (en) * | 2016-03-31 | 2017-10-05 | Le Holdings(Beijing)Co., Ltd. | Method and device for playing multimedia data synchronously |
US10403050B1 (en) * | 2017-04-10 | 2019-09-03 | WorldViz, Inc. | Multi-user virtual and augmented reality tracking systems |
CN107404514A (zh) * | 2017-06-08 | 2017-11-28 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
US20200155946A1 (en) * | 2017-07-24 | 2020-05-21 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for synchronously displaying game content and storage medium |
CN109040208A (zh) * | 2018-07-18 | 2018-12-18 | 广州多益网络股份有限公司 | 基于多客户端交互的数据同步方法、服务器、系统及介质 |
CN110958477A (zh) * | 2018-09-26 | 2020-04-03 | 株式会社理光 | 媒体数据播放的同步控制方法、装置及计算机可读介质 |
CN111176451A (zh) * | 2019-12-30 | 2020-05-19 | 上海曼恒数字技术股份有限公司 | 一种虚拟现实多通道沉浸式环境的控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
崔新友等: "基于多通道虚拟现实环境的应用开发研究", 《软件导刊》 * |
申闫春等: "基于并行渲染的虚拟现实开发平台设计与实现", 《计算机仿真》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860191A (zh) * | 2021-03-02 | 2021-05-28 | 深圳市东方聚成科技有限公司 | 一种基于多通道的同步分道存储方法 |
CN113965496A (zh) * | 2021-10-15 | 2022-01-21 | 上汽通用五菱汽车股份有限公司 | 一种优化投屏进程响应的方法 |
CN113965496B (zh) * | 2021-10-15 | 2023-11-17 | 上汽通用五菱汽车股份有限公司 | 一种优化投屏进程响应的方法 |
CN115190334A (zh) * | 2022-06-01 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 一种状态沟通方法、装置、控制设备及可读存储介质 |
CN117544640A (zh) * | 2023-12-05 | 2024-02-09 | 中移互联网有限公司 | 局域网多设备行为同步的方法、装置、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111953782A (zh) | 一种多通道数据的同步方法、装置、介质及设备 | |
EP3807766B1 (en) | Shadow tracking of real-time interactive simulations for complex system analysis | |
US20160366228A1 (en) | Sending application input commands over a network | |
US11695979B2 (en) | Method and device of displaying multi-screen interactive | |
KR20140066641A (ko) | 서버, 멀티미디어 기기 및 그들의 제어방법 | |
KR102203381B1 (ko) | 애플리케이션을 스트리밍하고 재생하기 위한 방법 및 전자통신 네트워크 | |
EP2736263A1 (en) | Server, multimedia apparatus and control method thereof for synchronously playing multimedia contents through a plurality of multimedia devices | |
CN113893524B (zh) | 云应用处理系统、方法、装置及设备 | |
EP3754998B1 (en) | Streaming media quality monitoring method and system | |
CN113207016B (zh) | 一种虚拟机图像帧率控制方法及网络设备、存储介质 | |
JP7180954B2 (ja) | ネットワーク構成データの条件付きブロードキャストのための方法および装置 | |
CN111431964B (zh) | 一种消息同步处理方法、装置及存储介质 | |
CN113746931B (zh) | 数据同步方法及装置 | |
CN114845136A (zh) | 视频合成方法、装置、设备和存储介质 | |
CN111475240B (zh) | 数据处理方法及系统 | |
CN114928619A (zh) | 信息同步方法、装置、电子设备及存储介质 | |
WO2021217567A1 (zh) | 显示方法、显示控制方法、显示终端、服务器和显示系统 | |
CN110620761B (zh) | 一种实现多人虚拟互动的方法与装置 | |
CN113132808A (zh) | 视频生成方法、装置及计算机可读存储介质 | |
US11930299B2 (en) | Measuring audio and video latencies in virtual desktop environments | |
CN117122913B (zh) | 一种基于帧同步的追帧加速方法、装置、设备及介质 | |
EP4340370A1 (en) | Cloud-based input latency measurement | |
CN115460447B (zh) | 一种用于多终端同步播放视频的方法及系统 | |
CN114531740B (zh) | 一种vr头显终端应用渲染运行方法及系统 | |
CN114938430B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201117 |