一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于客户端实时通信的程序同步交流方法、客户端与流程

2022-08-17 09:25:48 来源:中国专利 TAG:


1.本发明涉及互联网技术及通信领域,尤其涉及一种基于客户端实时通信的程序同步交流方法、客户端、系统。


背景技术:

2.程序同步交流在每个交流参与者终端显示相同的程序内容,并保持程序浏览与操作同步,由此提升沟通效率,在同时连接音视频通信的基础上,该种交流方式可达到面对面的交流效果。在现有技术中,音视频通信采用webrtc的方式,同步数据需由一交流终端发送到交流服务器,然后由交流服务器转发到另一交流终端实现同步。现有技术存在以下问题:交流者的数据需通过交流服务器进行转发处理,如此在交流服务器中存在留存用户交流数据信息的嫌疑,针对用户交流过程数据需要保护的场景,涉及交流者隐私数据泄露的风险;在实施过程中音视频通信采用webrtc,而数据通信采用c/s通信方式(客户端发送请求,服务端处理请求,或客户端与服务端进行socket通信等),部署复杂,通信机制不统一,不利于整体控制,如无法处理音视频与用户操作相互验证的需求;现有技术通过与交流服务器通信并由其转发同步数据的方式实现,针对一些用户量大的实施场景,需占用过多的服务器网络资源,实施成本高。
3.因此,亟需提出一种新的基于客户端实时通信的程序同步交流方法,予以解决以上问题。


技术实现要素:

4.针对上述问题,本发明提供一种基于客户端实时通信的程序同步交流方法、客户端、系统,旨在基于客户端的点对点通信能力,建立一种新的程序同步交流方式,解决现有程序同步交流技术中存在的服务端网络通信资源占用大、用户交流数据易泄露、通信机制不统一等问题。本发明提供的技术方案如下:
5.第一方面,本技术提供一种基于客户端实时通信的程序同步交流方法,所述方法应用于客户端,该方法包括:
6.在客户端访问并加载目标程序,且加载同步交流程序,其中,所述目标程序为用于同步交流的内容;
7.在目标程序、同步交流程序加载完成后,发送建立点对点通信的请求,以连接另一客户端,或者,发送建立点对点通信的许可,以允许另一客户端连接本客户端。所述请求、所述许可用于与对应的客户端建立所述点对点通信,其中,所述点对点通信包括数据通道、音频通道和/或视频通道中的一种或多种;
8.采集同步数据并向数据通道发送,或者,从数据通道接收同步数据,基于同步数据执行程序同步处理;
9.采集音频数据和/或视频数据并向音频通道和/或视频通道发送,从音频通道和/或视频通道接收音频和/或视频数据并播放。
10.以上实现方法在客户端之间建立点对点通信,通过该通信连接的数据通道传输同步数据以实现程序同步,通过该通信连接的音视频通信通道传输音视频数据以实现音视频交流,使两侧客户端用户运行的程序画面、操作保持一致,且伴有音视频交流功能,具有“面对面”的交流效果,同时,在建立点对点通信后,客户端之间的交流数据直接点对点传输,因此,有利于保护用户交流数据,且该方法仅利用客户端的通信能力实现交流,不受服务端通信能力的限制。
11.一个可能的实施方式中,在客户端在建立点对点通信之前,还包括,连接中间服务器,获取已连接至该中间服务器的客户端信息,从中选择一指定客户端建立点对点通信的请求,或者,向中间服务器发送与允许指定客户端或所有客户端建立点对点通信的许可,由中间服务器根据所接收的请求与许可之间的对应关系,建立客户端之间的点对点通信。
12.一个可能的实施方式中,在同一时刻,两个点对点连接的客户端仅有一方拥有程序操作权限,在无程序操作权限的客户端需要获取程序操作权限时,首先生成程序操作权限申请请求,将程序操作权限申请请求向数据通道发送。在占有操作权限的客户端,从数据通道接收对方发送的程序操作权限申请请求并处理,处理结果包括同意、驳回,在处理完成后设置本客户端的程序操作权限状态,并向数据通道发送处理结果通知,以供对方客户端设置程序操作权限状态。其中,在客户端中发生用户操作,在其占有程序操作权限的情况下,执行用户操作并执行程序同步处理;在其无程序操作权限的情况下,则拦截所发生的用户操作。
13.一个可能的实施方式中,在以上实施方式的基础上自动处理程序操作权限申请请求,具体为,在一客户端获取到程序操作权限后,启动一定时器执行计时,当从数据通道接收到另一客户端发送的程序操作权限申请请求后,判断定时器计数值是否达到了某预定数值,当达到时自动执行同意程序操作权限移交处理,否则,自动驳回该程序操作权限申请请求或执行手动确认处理流程。以上过程还包括,在占有程序操作权限的客户端,当监听到用户操作时,所述用户操作过程中自动驳回对方的程序操作权限申请请求,所述用户操作结束后,重启所述定时器计时。
14.根据以上实施方式,实现了一种在用户操作时不允许对方获得操作权,在用户操作完成后空置一时间段,该时间段内己方仍拥有操作的权利,该时间段结束后对方可自动获取到操作权,实现了一种在交流过程中自然获取操作权的方法。
15.一个可能的实施方式中,在客户端建立点对点通信之后,从数据通道接收另一客户端发送的运行参数,基于所接收的运行参数和/或从本侧客户端获取的运行参数,计算生成用于执行程序同步交流的运行设置参数,在本端基于其设置运行环境和/或目标程序状态,并将运行设置参数向数据通道发送,以供参与同步交流的客户端设置运行环境和/或目标程序状态。其中,运行参数包括运行环境参数和/或目标程序状态参数。
16.一个可能的实施方式中,在一方客户端实际运行程序,而在另一方客户端镜像显示运行内容,则选择前者为主客户端,后者为从客户端。在主客户端,计算生成用于执行渲染的程序内容并向数据通道发送;在从客户端,从数据通道接收程序内容并执行渲染。在从客户端基于程序内容执行渲染后,当从客户端占有程序操作权限且监听到用户操作时,则拦截该用户操作,并采集该用户操作生成用户操作指令向数据通道发送,主客户端从数据通道接收用户操作指令后执行,并基于其在主客户端中的执行结果执行程序同步处理。
17.一个可能的实施方式中,客户端在同步交流过程中,采集同步数据包括但不限于以下方式:在监听到程序事件或程序内容发生变化后,序列化目标程序的内容并采集生成同步数据;监听目标程序中的程序操作事件,基于程序操作事件对应采集生成程序操作指令,将程序操作指令生成为同步数据;将目标程序内容在第一canvas上执行绘制,基于第一canvas获取canvas数据,将canvas数据生成为同步数据;基于目标程序显示内容生成图片数据,将图片数据生成为同步数据。
18.一个可能的实施方式中,客户端在同步交流过程中,客户端接收同步数据并执行程序同步处理包括但不限于以下方式:解析同步数据包含的序列化后的目标程序的内容,基于序列化后的目标程序的内容更新、替换客户端的目标程序内容,或反序列化生成客户端的目标程序内容;解析同步数据包含的程序操作指令并执行;解析同步数据包含的canvas数据,在客户端中创建第二canvas,基于canvas数据在第二canvas上显示图片或执行绘制;解析同步数据包含的图片数据,基于图片数据显示图片。
19.一个可能的实施方式中,从数据通道接收涂鸦交流模式切换指令,将客户端的同步交流模式切换为涂鸦交流模式(包括反向切换),在目标程序中创建用于执行涂鸦交流的涂鸦canvas,且屏蔽用户对原目标程序执行的操作,在确定用户拥有涂鸦操作权限时,接收用户对涂鸦canvas执行的操作并绘制,采集发生于涂鸦canvas上的绘制数据或图像数据生成同步数据向数据通道发送;从数据通道接收其它客户端发送的同步数据,解析其包含的涂鸦绘制数据或图像数据,在涂鸦canvas上执行绘制。
20.一个可能的实施方式中,在客户端同步交流过程中,采集其加载的目标程序数据、用户操作数据、向数据通道发送的同步数据、从数据通道接收的同步数据、向数据通道发送的音频和/或视频数据、从数据通道接收的音频和/或视频数据中的一种或多种,并记录相应数据发生的时间信息,生成程序同步交流过程记录数据并存储。
21.一个可能的实施方式中,在客户端同步交流过程中,生成程序同步交流断开请求并向数据通道发送,还包括,从数据通道接收另一客户端发送的程序同步交流断开请求,执行同意或拒绝处理,在确认同意时断开点对点通信。
22.一个可能的实施方式中,从目标程序的程序配置数据或同步交流程序的配置数据中读取是否执行同步的配置信息,计算目标程序所包含的子内容的同步属性,或者,接收用户对子内容设置的是否执行同步的设置信息,基于设置信息计算子内容的同步属性,同步属性用于标记子内容为同步内容或非同步内容。在确认为发生于同步属性为非同步内容的子内容上的程序事件时,不执行同步数据采集、发送处理;在确认为发生于同步属性为同步内容的子内容上的程序事件时,执行同步数据采集与发送处理。其中,对已被一客户端识别为同步属性为非同步内容的子内容,该客户端对其拥有单方执行的权限,对其操作时不执行对其他客户端同步。
23.一个可能的实施方式中,在向数据通道发送同步数据之前,客户端根据目标程序的数据属性配置或同步交流程序的配置数据中对隐私数据的定义,从同步数据中识别出隐私数据,并对同步数据中的隐私数据执行过滤或隐藏或替换处理。
24.第二方面,本技术还提供一种客户端,所述客户端包含点对点通信功能,所述客户端与其它所述客户端建立点对点通信以执行程序同步交流,所述客户端包括:
25.连接模块,用于发送建立点对点通信的请求或许可;还用于与其它客户端建立点
对点通信,该通信连接包括数据通道、音频通道和/或视频通道中的一种或多种;还用于从中间服务器获取其它客户端信息,从中选择客户端发送连接请求或许可;
26.数据通信模块,用于传输同步数据,以及传输除音频和/或视频数据之外的其它数据;
27.音频和/或视频通信模块,用于传输音频和/或视频数据;
28.同步控制模块,用于执行程序操作权限控制,在确认客户端占有程序操作权限时执行用户操作并执行程序同步处理,在确认客户端无程序操作权限时拦截用户操作;还用于生成程序操作权限申请请求发送;还用于接收并处理程序操作权限申请请求;
29.数据同步模块,用于采集同步数据,包括:在监听到程序事件或程序内容发生变化后序列化目标程序的内容并将其采集为同步数据,或者,监听目标程序中的程序操作事件并基于其采集生成程序操作指令作为同步数据,或者,将目标程序内容在第一canvas上执行绘制并采集其canvas数据为同步数据,或者,基于目标程序显示内容生成图片数据并将其采集为同步数据;
30.所述数据同步模块,还用于基于同步数据执行程序同步处理,包括:解析其包含的序列化后的目标程序的内容并基于序列化后的目标程序的内容更新或替换或反序列化生成客户端的目标程序内容,或者,解析其包含的程序操作指令并执行,或者,解析其包含的canvas数据显示图片或执行绘制,或者,解析其包含的图片数据并显示。
31.一个可能的实施方式中,所述客户端还包括配置模块,用于计算生成用于执行程序同步交流的运行设置参数,还用于基于运行设置参数设置客户端的运行环境和/或目标程序状态。
32.一个可能的实施方式中,所述客户端还包括记录模块,用于采集所加载的目标程序数据、用户操作数据、发送的同步数据、接收的同步数据、发送的音频和/或视频数据、接收的音频和/或视频数据中的一种或多种并记录其发生时间信息生成程序同步交流过程记录数据并存储。
33.一个可能的实施方式中,所述客户端还包括涂鸦模块,用于在切换至涂鸦交流模式后,创建用于执行涂鸦交流的涂鸦canvas,还用于接收用户涂鸦操作并生成涂鸦绘制数据或图像数据发送,还用于接收涂鸦绘制数据或图像数据在涂鸦canvas上执行绘制。
34.一个可能的实施方式中,所述同步控制模块,还用于识别与计算客户端的主从属性,包括主客户端、从客户端。
35.一个可能的实施方式中,所述同步控制模块,在主客户端中,还用于计算生成用于执行渲染的程序内容并发送,还用于接收从客户端发送的用户操作指令并执行。
36.一个可能的实施方式中,所述同步控制模块,在从客户端中,还用于接收程序内容并执行渲染;还用于在占有程序操作权限时监听用户操作,拦截用户操作并采集用户操作生成用户操作指令向主客户端发送。
37.一个可能的实施方式中,所述同步控制模块,还用于计算子内容的同步属性,确认同步属性为非同步内容时,为用户提供单方执行的权限,停止对相关子内容执行的同步数据采集、发送处理。
38.一个可能的实施方式中,所述同步控制模块,还用于在获取到程序操作权限后启动定时器计时;还用于在接收到程序操作权限申请请求后,确定所述定时器计数值达到预
定数值时自动移交程序操作权限,确定所述定时器计数值未达到预定数值时自动驳回程序操作权限申请或执行手动处理;还用于在监听到用户操作时,在所述用户操作过程中自动驳回对方的程序操作权限申请请求,在所述用户操作结束后,重启所述定时器计时。
39.一个可能的实施方式中,所述同步控制模块,还用于生成程序同步交流断开请求并发送;还用于接收并处理程序同步交流断开请求,断开点对点通信。
40.一个可能的实施方式中,所述数据同步模块,还用于识别同步数据中的隐私数据,并对同步数据中的隐私数据执行过滤、隐藏或替换处理。
41.第三方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面中任一方法和/或第二方面中客户端的任一功能。
42.第四方面,本技术提供一种计算机程序,当计算机程序被计算机执行时,用于执行如第一方面中任一方法和/或第二方面中客户端的任一功能。
43.第五方面,本技术还提供一种基于客户端实时通信的程序同步交流系统,所述系统包括两个或多个客户端、中间服务器,所述客户端执行如第一方面的任一方法和/或第二方面中客户端的任一功能,所述中间服务器接收客户端发送的建立点对点通信的请求、许可,并基于请求与许可之间的对应关系建立客户端之间的点对点通信。
44.可见,在以上各个方面,本技术利用客户端间点对点的通信方式,同时实现用户之间程序同步与音视频同步交流,可达到“面对面”的交流效果。使交流数据在客户端之间直接传输,对用户交流数据起到有效的保护作用,且通信过程不受服务器通信能力限制,更有利于大规模的应用场景,无需服务端部署同步交流服务程序,实施易且成本低。
附图说明
45.图1为本技术提供的一种基于客户端实时通信的程序同步交流实施例组成示意图;
46.图2为本技术实施例提供的一种客户端实时通信的程序同步交流系统框架示意图;
47.图3为本技术实施例提供的一种基于客户端实时通信的程序同步交流方法流程示意图;
48.图4为本技术实施例提供的一种基于网页客户端实时通信的网页同步交流方法流程示意图;
49.图5为本技术实施例提供的一种操作权限申请与控制的流程示意图;
50.图6为本技术实施例提供的一种自动执行操作权限分配的流程示意图;
51.图7为本技术实施例提供的一种计算与设置运行设置参数的流程示意图;
52.图8为本技术实施例提供的一种主客户端与从客户端执行程序数据同步的流程示意图;
53.图9为本技术实施例提供的一种同步涂鸦的执行流程示意图;
54.图10为本技术实施例提供的一种程序同步交流过程记录的流程示意图;
55.图11为本技术实施例提供的一种程序同步交流断开处理的流程示意图;
56.图12为本技术实施例提供的一种目标程序所包含的子内容的同步属性识别流程
示意图;
57.图13为本技术实施例提供的一种根据子内容的同步属性执行同步处理的流程示意图;
58.图14为本技术实施例提供的一种对同步数据中的隐私数据处理的流程示意图;
59.图15为本技术实施例提供的一种可基于实时通信进行程序同步交流的客户端模块示意图;
60.图16为本技术实施例提供的另一种可基于实时通信进行程序同步交流的客户端模块示意图;
61.图17为本技术实施例提供的一种基于客户端实时通信的程序同步交流系统结构示意图;
62.图18为现有技术中的一种p2p连接通信过程示意图。
具体实施方式
63.本技术的实施方式部分仅用于对本技术进行解释,而非旨在限制本技术。
64.以下,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
65.首先,对本技术部分名词简要说明,以便本领域技术人员理解。
66.1)客户端,或称为用户端,是为用户提供的一种本地运行的应用程序,通常客户端指与服务端相对应,但本技术的同步交流通信为用户端间直接通信,因此,它不属于真正的“客户端”,但在用户端通信建立之前,它与中间服务器相连接,此时相对于服务器,又为真正的“客户端”,鉴于为同一用户端,在本技术统一称为客户端。本技术中的客户端,例如:浏览器。
67.2)程序,也即应用程序,本技术不对其具体形式进行限定,但它需要包括ui界面,例如:网页、app等。目标程序,即为用于同步交流的程序。
68.3)程序同步,是指在两个客户端间对某一程序实现相同或相似的浏览与执行效果。
69.4)点对点通信,指的是对等网络,两台机器之间直接通信,如p2p(peer-to-peer)通信。
70.5)中间服务器。在本技术中,包括两种服务器,一种为目标程序提供服务,如web服务,其中包括业务逻辑,如获取客户端用户信息、提供在线用户列表等;另一种提供用于建立点对点通信的服务,如中继服务器。本技术将这两种服务器统称为中间服务器,其在为客户端建立点对点通信后,均不参与数据通信。
71.6)
72.点对点通信请求、许可,所述请求、所述许可通常向中间服务器发送,所述请求用于请求与一客户端建立点对点通信,所述许可用于允许全部或指定的客户端与本客户端建立点对点通信。在此,请求与许可用于表示连接的主动与被动关系。所述请求、许可指业务上一方请求另一方连接并获得对方同意的行为,经业务处理后,最终转化为网络上点对点通信连接的相关处理。另外,针对服务端授权是否允许连接的行为,可理解为一种默认许
可。为便于理解,此处简要介绍一下相关网络连接的相关技术,如图18示出了一种现有技术中p2p连接的过程,peer a通过stun服务器,收集自己的网络信息(无法直接穿透将通过turn服务器中转),peer a创建offer sdp,通过signa lchannel(信令服务器)发送到peer b,然后,peer b做出回应生成answer sdp,通过signa lchannel发送到peer a,然后,双方发送ice candidate至信令服务器并传至对方,ice candidate描述了webrtc能够与远程设备通信所需的协议和路由,双方共同提出一些候选连接,最终共同商定一个描述他们认为最佳连接的连接,然后使用候选人的详细信息来启动连接。sdp(session description protocol,用来描述当前连接者想要传输的内容,支持的协议类型,支持的编解码类型等,其中包括关于ip和端口的描述信息)。
73.7)和/或,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,字符“/”一般表示前后关联对象是一种“或”的关系。
74.分析现有程序同步实现技术,其在交流通信过程中需要服务器中转数据,故在使用过程中需占用大量的服务器资源,不利于大规模应用场景,且在服务器可留存用户交流的数据,不利于保护用户交流隐私。另外,现有技术实现同步数据传输、音视频通信采用不同的通信方式,例如同步数据采用与服务端建立websocket传输,音视频通信采用rtc方式,一次程序同步交流占用多方网络资源,且增加了实施难度。
75.本技术围绕以上问题提出解决方法,旨在利用客户端间点对点的通信能力,在客户端间建立通信,直接传输数据实现两者间的程序同步交流。
76.图1示出了一种基于客户端实时通信的程序同步交流的组成示意图,其中,客户端a、客户端b分别向中间服务器发送点对点连接请求或许可,由中间服务器基于所接收的请求与许可的对应关系,为客户端a、客户端b建立点对点通信,之后,两者之间直接进行数据传输,包括同步数据传输、音视频数据传输,所述同步数据传输用于实现程序同步、控制等,所述音视频数据传输用于双方的音视频交流。例如,以上实施例在应用于实现网页同步交流的场景中,所述客户端a、客户端b即为网页客户端,或可理解为浏览器,可利用浏览器的实时通信(real-time communications(rtc))能力建立所述点对点通信,现有浏览器大多已集成webrtc(web real-time communication),其是一个支持网页浏览器进行实时语音对话或视频对话的api,其中包含视频音频采集、编解码、数据传输、音视频展示等功能,便于快速构建实现音视频通讯交流,且包含一个数据通道(datachannel),其具有数据传输能力,可用于执行本技术的同步数据传输,另外,所述中间服务器在处理网络连接时,通常需要提供两个主要的服务功能,一个是信令服务器(signaling server),一个是nat穿透服务器(ice server),请参考图2所示的框架图。
77.另外需要说明的是,webrtc实际上不仅支持web之间的音视频通讯,还支持在android以及ios端等中通信,且同样包括数据通道,因此,利用该技术可实现app等间的同步交流,同样可达到全平台互通交流的效果,其原理与网页基本相同。
78.请参考图3,以上基于客户端的实时通信能力建立程序同步交流方法包括以下步骤:
79.s301,访问并加载目标程序,加载同步交流程序;
80.s302,发送建立点对点通信的请求或许可,建立与其它客户端之间的点对点通信,
建立数据通道、音频和/或视频通道;
81.s303a,采集同步数据向数据通道发送,或者,从数据通道接收同步数据,基于所接收的同步数据执行程序同步处理;
82.s303b,采集音频和/或视频数据向音频和/或视频通道发送,从音频和/或视频通道接收音频和/或视频数据并播放。
83.如上所述,s301所加载的目标程序为客户端间同步浏览、操作的程序,在两个客户端加载的所述目标程序可以相同,也可不同,但两者的运行效果需保持一致或基本一致。所述同步交流程序为用于实现本技术所包含方法的一种程序,其功能包括但不限于建立点对点通信、采集同步数据、同步数据通信、执行程序同步、音视频通信、操作权限控制、同步过程控制、交流数据记录等中的一种或者多种。s302中,所述请求、所述许可通常向中间服务器发送,所述中间服务器基于所述请求与所述许可之间的对应关系建立所述点对点通信。可选的,在一方客户端已获取另一方客户端ip地址等信息的情况下,直接发送所述请求、许可建立连接。s302在建立客户端之间的点对点通信后,所述通信包括数据通道、音频和/或视频通道,例如webrtc提供datachannel接口,其为一个在两个节点之间的双向的数据通道,可用于传输同步数据,提供media api,使用mediastream(表示媒体数据流)处理音视频传输等。在以上通信连接建立后,s303a用于同步程序,s303b用于音视频交流,最终获得“面对面”的交流效果。
84.以下,以一网页同步交流的实施例对以上过程详细说明,请参考图4,包括网页客户端a、网页客户端b、中间服务器,基于网页客户端的实时通信能力实现网页同步交流,步骤如下:
85.在网页客户端a:
86.s401,访问并加载目标网页,加载所述目标网页中包含的同步交流js脚本;
87.s402,发送建立点对点通信的许可;
88.在网页客户端b:
89.s403,访问并加载目标网页,加载所述目标网页中包含的同步交流js脚本;
90.s404,发送建立点对点通信的请求;
91.在中间服务器:
92.s405,基于所述请求与所述许可之间的对应关系建立网页客户端a与网页客户端b之间的点对点通信;
93.s406,发送连接通知;
94.s407,发送连接通知;
95.在网页客户端a:
96.s408,连接处理;
97.在网页客户端b:
98.s409,连接处理;
99.在网页客户端a:
100.s410,采集网页同步数据;
101.s411,发送网页同步数据;
102.在网页客户端b:
103.s412,接收网页同步数据,执行网页同步处理;
104.在网页客户端b:
105.s413,采集音频和/或视频数据;
106.s414,发送音频和/或视频数据;
107.在网页客户端a:
108.s415,接收音频和/或视频数据并播放。
109.如上所述,s401、s403所加载的目标网页即为同步交流的目标程序,所加载的同步交流js脚本也即为所述同步交流程序,所述js脚本为包含实现所述同步交流功能的api,在目标网页中引入该js脚本(包括以一个或多个js文件形式引入、以script标签形式引入等),使目标网页快速获得同步交流功能,其中,所述js脚本还包括js文件形式。另外,s401、s403所加载的目标网页、同步交流js脚本均可能相同,也可能不同。以上s410、s411、s412示例出一个程序同步的执行流程,其通过数据通道传输数据,另包括在网页客户端b中执行s410,而在网页客户端a中执行s412,s411反向传输数据的执行流程。优选的,s411发送网页同步数据首先进行压缩处理,s412接收后解压处理。以上s413、s414、s415示例出一个音视频传输流程,其一般采用媒体数据流形式传输,且同时在网页客户端a中采集媒体数据传送至网页客户端b播放,使双方在同步交流过程中均可获得对方的声音和/或图像。
110.以上步骤实现了一个基础的网页同步交流场景,可以看出,中间服务器在s405为两者建立通信后,在s408、s409之后两者直接通信,开启网页同步交流,交流过程中不与所述中间服务器产生任何交互,因此,有效的保证了交流数据安全。可选的,所述点对点通信通过安全传输(如通过wws协议、https协议传输等)、对所传输的数据进行加密等方式,进一步提升交流的安全性。可见,以上网页同步交流过程中不通过服务器传输数据,完全依赖于客户端的通信能力,更有利于较大规模用户之间同步交流的实施场景。
111.在另一种可行的实现场景中,在两客户端间建立点对点通信之前,其分别访问目标程序并连接服务端,由此服务端可获得客户端的在线信息,将所述在线信息返回至每一客户端显示。因此,在客户端可以选择其中的一客户端与之建立同步交流,例如,在以上s401、s403步骤之后,网页客户端a可获得网页客户端b的在线信息,并选择网页客户端b,向中间服务器发起与之建立点对点通信的请求,或者,选择网页客户端b,向中间服务器发起允许网页客户端b进行点对点通信的许可。
112.在一种可能的实现场景中,在客户端a生成用于客户端b访问的目标程序或目标程序链接,将所述目标程序链接向所述客户端b发送,所述客户端b访问所接收的目标程序或目标程序链接,获取客户端a的sdp,客户端b同时发送自己的sdp,建立两者之间的点对点通信。
113.在具体的实施场景中,程序同步中仅有一方拥有对程序的操作权限,此时,如另一方想获得操作权限,需向对方发起操作权限申请请求,经对方同意后转移操作权限,请参考图5,当前客户端b占有操作权限,客户端a请求获得操作权限的流程如下:
114.在客户端a中:
115.s501,生成程序操作权限申请请求;
116.s502,发送程序操作权限申请请求;
117.在客户端b中:
118.s503,接收程序操作权限申请请求,执行同意处理;
119.s504,发送通知;
120.s505,转移程序操作权限,设置程序操作权限状态;
121.s506,监听到用户操作,拦截处理该用户操作;
122.在客户端a中:
123.s507,获取程序操作权限,设置程序操作权限状态;
124.s508,监听到用户操作,执行并采集同步数据;
125.s509,发送同步数据;
126.在客户端b中:
127.s510,接收同步数据,执行程序同步处理。
128.以上步骤中,s503的处理结果包括:同意、拒绝,当选择拒绝时,s504发送拒绝通知,且操作权限不发生转移,仍在客户端b中执行程序操作,向客户端a传输同步数据。另外需要注意的是,在s503同意该请求后,s504向对方发送操作权限转移通知,s505将设置本端的操作权限状态,当用户继续执行操作,s506将进行拦截处理,所执行的用户操作无效。客户端a在接收到操作权限转移通知后获得操作权限,根据s508、s509、s510执行后续的程序同步流程。
129.在程序同步交流过程中,手动处理操作权限请求,会造成较差的用户体验,优选的,如图6所示,在占有操作权限请求的客户端自动处理所接收的请求,详细步骤为:
130.s601,取得操作权限;
131.s602,启动或重启定时器计时;
132.s603,监听到用户操作事件后,跳转至s602执行;
133.s604,接收到另一客户端发送的程序操作权限申请请求;
134.s605,判断定时器计数值达到预定数值,当结果为是时,执行s606,自动执行同意程序操作权限移交处理;当结果为否时,s607,自动驳回程序操作权限申请请求或执行手动确认处理。
135.其中,s601指一客户端的操作权限状态发生改变且取得操作权限,如从另一方获取到操作权限,执行s602启动定时器开始计时操作,以上步骤示例说明,当前用户在取得操作权限后,即使不执行实际操作,也确保在预定的时间范围内占有操作权限,该段时间范围内,对方发送操作权限申请请求,将执行s607自动拒绝,或者,在对方客户端中设置该时间范围无法发起操作权限申请请求,当超过该时间范围,表示己方同意放弃操作权限,当接收到对方发送的操作权限申请请求后,自动执行s606同意处理。可选的,s605还包括判断当前客户端用户是否处于执行操作状态,该状态下执行s607处理,该处理方式可避免一种特殊情形导致的问题:例如预定的时间范围为2秒,在用户执行操作开始时,s602启动计时,当用户执行的该操作延续了3秒,此时接收到对方发送的操作权限申请请求,s606自动转移操作权限。另外,在以上预定的时间范围内,当己方发生的操作完成后,则自动刷新定时器重新启动计时,需要说明的是,根据用户操作的性质,s603可设置为操作事件起始或结束后执行重启定时器操作。
136.优选的,在同步交流过程中,结合操作权限,显示控制状态以供用户参考操作,在客户端ui中显示当前程序操作权限的持有状态,以供用户获悉是否可以发起操作权限申请
请求、当前操作权限占有时长,例如每个客户端在某一时刻的控制状态包括受控状态、空闲状态、在控状态,所述受控状态表示本客户端操作无效,所述在控状态表示本客户端拥有操作权并可持续执行操作,所述空闲状态表示可申请获取操作权。可选的,在控制状态发生改变时,显示相应提示信息。
137.可选的,在一无操作权限的客户端,限定于在控制状态为空闲状态的条件下,执行生成程序操作权限申请请求计算。可选的,在一无操作权限的客户端,当控制状态为空闲状态时,用户执行操作,首先生成程序操作权限申请请求并发送以获取操作权限,对用户已执行的操作拦截并放弃处理,或者,针对可生成操作权限申请请求的用户操作,在用户执行操作时采集该操作事件并记录,在获取到操作权限后执行所记录的操作事件。
138.可选的,在所述同步数据中包含对方的光标位置数据,以供一方获悉对方的操作行为。可选的,使用进度条、计时值、颜色值、透明度变化提示当前可持续占有操作权限的剩余时间。可选的,在获得操作权限的一方显示可操作的状态光标,另一方显示不可操作的状态光标。可选的,在双方均可获得操作权限的状态下,光标闪动显示,以示优先操作的一方可获取到操作权限。
139.以上实施例实现了一种在交流过程中自然获取操作权的方法,用户在交流过程中,无需手动申请、手动处理操作权,提高了操作权分配的处理效率,且提升了用户体验。
140.在一种可能的实现场景中,请参考图7步骤:
141.s701,所述客户端在建立点对点通信之后;
142.s702,接收另一客户端发送的运行参数,基于所接收的运行参数和/或从本侧客户端获取的运行参数,计算生成用于执行程序同步交流的运行设置参数,将所述运行设置参数向数据通道发送;
143.s703,基于运行设置参数设置客户端的运行环境和/或目标程序状态。
144.通过以上步骤,在同步交流开始,s702获取对方以及本端的运行参数,执行计算获得用于本次同步交流的设置参数,所述运行参数例如运行设备窗口尺寸、屏幕方向(横屏或竖屏)、屏幕分辨率等,因在不同的设备上运行目标程序会产生不同的显示效果,导致执行程序同步的两端显示内容、效果不一致,不利于交流、涂鸦等,该步骤中的计算方法用于适配两端的显示,以生成的运行设置参数能够在两端正确显示且显示效果相同为目的。s703基于设置参数对客户端的运行环境进行设置。优选的,在所述运行参数中,还包括目标程序的状态信息,例如客户端a浏览目标网页,用户已将网页滑动至某位置,在建立程序同步交流后,需将该位置数据作为运行参数传递,以在s702中计算网页的位置数据生成运行设置参数,在s703中基于该位置数据设置目标程序运行状态。
145.在一种可能的实现场景中,请参考图8所示,该步骤示出了一种程序同步的实施方式,其中,该实施方式包括主客户端、从客户端,在程序同步过程中,在主客户端中实际执行程序,而在从客户端同时显示执行结果,具体步骤如下:
146.在主客户端:
147.s801,计算生成用于执行渲染的程序内容;
148.s802,发送用于执行渲染的程序内容;
149.在从客户端:
150.s803,接收所述程序内容并执行渲染;
151.s804,监听到用户操作;
152.s805,拦截所述用户操作,并采集所述用户操作生成用户操作指令;
153.s806,发送用户操作指令;
154.在主客户端:
155.s807,接收所述用户操作指令后执行;
156.s808,采集同步数据;
157.s809,发送同步数据;
158.在从客户端:
159.s810,接收同步数据,执行程序同步处理。
160.结合以上步骤,例如所述程序为网页,则主客户端保持完整的网页程序和执行环境,s801基于主客户端中执行的网页,计算生成用于在从客户端显示内容,例如,将主客户端中的网页dom序列化后生成同步数据,执行s802向从客户端发送,该部分数据可生成完整的显示效果,但不包括或不完全包括主客户端网页中的javascript脚本程序。同时,以上实施例提供了一种从客户端可获取操作权限并执行操作的方式,当从客户端获取到操作权限,在s804监听到用户操作后,执行s805拦截所述用户操作,即不实际在从客户端执行网页操作,而将用户执行的操作采集为用户操作指令,经s806发送后,s807在主客户端实际执行该网页操作,然后通过s808、s809、s810将执行后的网页内容同步至从客户端,使两端保持同步状态。s808采集同步数据,例如:采集发生变化的dom数据作为同步数据,或者,采集差异化的网页数据作为同步数据等。优选的,在执行操作的客户端,监听指定类型的操作事件,该指定类型的操作事件不会使程序内容发生改变,如网页操作中的页面滚动等,则采集该类操作事件生成操作指令,向对方客户端发送以供在另一端直接执行,在该种实现方式中,如以上所述从客户端为执行网页操作的客户端,则在s805中不进行拦截处理,在s807中主客户端执行操所述操作指令后不必执行后续s808、s809、s810相关同步操作,该方式有利于提高该类指定类型操作事件的同步效率。
161.以上实施方式至少可产生以下有益效果:有利于在同步过程中保护主客户端执行的程序与数据;在所述程序与服务器间存在交互的场景中,有利于避免运行错乱问题,如,主客户端、从客户端两端的目标程序相同,若在与服务器交互时同时实际执行,会与服务器产生重复交互而导致运行错乱;对指定类型的操作事件直接在两端同步执行,提升同步效率。
162.另一种可能的实现方式中,在主客户端中保持完整的执行环境,当监听到用户操作时,将所述用户操作采集为操作指令,且采集所述主客户端中的程序事件及其对应的执行结果数据,将所述操作指令、所述程序事件及其对应的执行结果数据生成为同步数据,向所述数据通道发送;在从客户端一侧,同样保持目标程序的执行环境,在从数据通道接收到同步数据后,解析所述同步数据,执行其包含的操作指令,当在执行过程中发生程序事件时,根据所述程序事件在所述程序事件及其对应的执行结果数据中查找,获得其对应的执行结果数据,使用该结果数据为相应的程序事件赋值。例如,在从客户端中,当所述目标程序需向服务端发送网络请求并返回数据时,不对外发送所述网络请求,而从所述同步数据中包含的所述程序事件及其对应的执行结果数据中查找该网络请求,并获取其对应的执行结果数据作为本次网络请求返回的结果数据。由此实现了一种在客户端a中实际执行,在客
户端b中模拟执行的程序同步效果,其优点是,利用了客户端b的程序执行能力,降低了数据传输量,且同样避免了在同步交流过程中与服务器产生重复交互问题。
163.在本技术的具体实施场景中,客户端在同步交流过程中采集同步数据、接收对方发送的同步数据执行同步处理,包括但不限于以下方式:
[0164][0165]
上表中,生成同步数据方法与执行同步处理方法存在对应关系。例如,应用于网页同步交流场景,在客户端a中,在监听到网页事件或网页内容发生变化后,序列化目标网页的dom生成序列化后的dom数据,将所述序列化后的dom数据采集为网页同步数据,则在客户端b中,解析网页同步数据包含的序列化后的dom数据,基于所述序列化后的dom数据更新或替换本端目标网页的dom内容。又如,应用于java应用程序的同步交流场景,在客户端a中在监听到程序事件或程序内容发生变化后,序列化目标程序的内容并采集生成同步数据,在客户端b中,解析同步数据包含的序列化后的目标程序的内容,基于序列化后的目标程序的内容反序列化生成本端的目标程序内容。可选的,在具体实施时,可同时结合其中的一种或多种方式进行实施,例如同时结合方式1、方式2进行实施,比如在网页同步交流场景中,当网页内容数据发生变化时,采用方式1处理,当用户滑动网页时,此时网页内容未发生变化,采用方式2处理,同步相关操作指令使另一端产生相同的滑动效果。
[0166]
在一种可能的实现方式中,程序同步交流过程中需针对运行程序进行标记,圈点交流,以达到更好的沟通效果,以下实施例提供一种客户端a与客户端b的同步涂鸦方法,参考图9,步骤如下:
[0167]
在客户端a中:
[0168]
s901,接收涂鸦交流模式切换指令,切换至涂鸦交流模式;
[0169]
s902,发送涂鸦交流模式切换通知;
[0170]
在客户端a、b中分别执行s903、s904:
[0171]
s903、s904,创建用于执行涂鸦交流的涂鸦canvas,且屏蔽用户对原目标程序执行操作;
[0172]
在客户端a中:
[0173]
s905,接收用户对涂鸦canvas执行的操作并绘制;
[0174]
s906,采集发生于涂鸦canvas上的绘制数据或图像数据生成同步数据;
[0175]
s907,发送涂鸦同步数据;
[0176]
在客户端b中:
[0177]
s908,接收同步数据,解析其包含的涂鸦绘制数据或图像数据,在涂鸦canvas上执行绘制。
[0178]
以上所述,所述涂鸦交流模式相对于目标程序交流的工作模式,在两者之间可通过切换指令进行切换,s901客户端a通过执行切换后,需执行s902发送通知至另一方同步切换。s903或s904,进入涂鸦交流模式后,在两个参与交流的客户端均创建用于涂鸦的画布以执行同步涂鸦绘制,所述涂鸦画布通常背景色透明,且在所述目标程序上层显示,当用户在其上操作时,操作事件被识别为绘制动作,避免对原目标程序执行操作。s905、s906、s907、s908示出了一个在客户端a中执行涂鸦,将所生成的涂鸦数据同步至客户端b的过程,其中的涂鸦同步数据可被视为同步数据的一种,也可作为一种独立的同步数据。同样地,以上s905、s906同样可在客户端b中执行,s907向客户端a发送涂鸦同步数据,然后在客户端a中执行s908显示在客户端b中的涂鸦绘制数据。
[0179]
可选的,与所述目标程序交流的工作模式不同,在所述涂鸦交流模式下,为两侧客户端同时分配涂鸦操作权限,使两侧客户端均可执行涂鸦操作,并将所产生的涂鸦数据同步至对方,实现同时涂鸦的交流效果。
[0180]
可选的,在以上s903中,创建用于执行涂鸦交流的涂鸦canvas,且屏蔽用户对原目标程序执行的操作;另在步骤s904中,创建用于执行涂鸦交流的涂鸦canvas,且不为客户端a分配涂鸦操作权限,不屏蔽用户对原目标程序执行的操作。由此获得在客户端b用户执行涂鸦,客户端a用户执行程序操作的交流效果,例如适用于一方通过涂鸦执行操作指导,另一方实际执行程序操作的场景,如此,程序操作方可获得涂鸦绘制数据,但指导的一方提供指导但不具有实际的程序操作权限。以上示例同样适用于由客户端a执行涂鸦指导,而客户端b执行程序操作。
[0181]
可选的,在s901进入所述涂鸦交流模式后,截图一侧客户端的程序运行画面,生成图片数据向另一端发送,在另一侧客户端显示所述图片数据,两侧用户基于所述图片数据作为背景执行涂鸦同步。该实现方式适用于在同步交流过程中两侧客户端显示画面不完全一致的场景,使双方在保持画面完全一致的情况下执行涂鸦交流,有效避免因显示画面差异而产生的涂鸦同步错位问题。可选的,在以上两侧客户端显示尺寸不一致时,对所述图片数据进行缩放处理,同时,在接收到涂鸦数据执行绘制时进行相同的缩放处理。
[0182]
在一种可能的实现方式中,如图10所示,在s1001所述客户端在建立点对点通信连接之后,执行s1002,采集客户端加载的目标程序数据、用户操作数据、向数据通道发送的同步数据、从数据通道接收的同步数据、向数据通道发送的音频和/或视频数据、从数据通道接收的音频和/或视频数据中的一种或多种,并记录相应数据发生的时间信息,生成程序同步交流过程记录数据并存储。该实现方式中,在客户端一侧记录生成程序同步交流过程记录数据,即从客户端中运行的、存放的、发送的、接收的几个方面记录生成记录数据,需要说明的是,涂鸦操作可作为用户操作数据记录,同步涂鸦数据作为同步数据中的一种记录。可
选的,基于所述同步交流过程记录数据执行对应的同步交流过程的回放,即按照时间线,基于所记录的数据,对应处理还原同步交流过程。可选的,采用消息摘要算法为所记录的数据生成某个时间点或最终的消息摘要,所述消息摘要用于验证所记录的同步交流过程记录数据,或将所述消息摘要发送至对方共同存储,用于作为交流凭据,或用于验证所记录数据的一致性。
[0183]
在一种可能的实现方式中,客户端a与客户端b在双方同意的情况下,结束程序同步交流,如图11所示,在客户端a中,执行s1101,生成程序同步交流断开请求,然后s1102向数据通道发送程序同步交流断开请求,客户端b中执行s1103,接收程序同步交流断开请求,执行同意处理,然后执行s1104,断开所述点对点通信连接。此处,s1103中的处理包括同意、拒绝两种处理方式,当客户端b拒绝该断开请求时,向数据通道发送拒绝的通知信息。优选的,在客户端b执行s1103之后以及执行s1104之前,对所记录的程序同步交流过程记录数据进行最终的存储、生成消息摘要等处理,或者,通知客户端a进行该类型存储或存证处理,进一步的,双方在确认对方记录存储的基础上,执行s1104断开通信。可选的,客户端a选择直接断开通信连接而不向对方发送断开请求通知,在该种方式下,客户端a基于用户触发的事件执行程序同步交流过程记录数据的存储、存证处理,客户端b在监听到所述通信连接断开事件后,提示交流结束信息,以及执行程序同步交流过程记录数据的存储、存证处理。
[0184]
在一种可能的实现方式中,如图12所示,在s1201客户端在建立点对点通信之后,执行s1202计算目标程序所包含的子内容的同步属性。其中,子内容为目标程序包含的部分内容,例如目标程序中的某form窗体、某网页、网页中的某个标签、某数据、某操作事件等。同步属性用于标记子内容为同步内容或非同步内容,s1202计算包括但不限于以下方式:从目标程序的程序配置数据或同步交流程序的配置数据中读取某子内容是否执行同步的配置信息,计算目标程序所包含的子内容的同步属性;接收用户对某子内容设置的是否执行同步的设置信息,基于设置信息计算子内容的同步属性。例如,在网页同步中,从目标网页的网页标签属性或所述js脚本的配置数据中读取是否执行同步的配置信息,计算目标网页包含的子网页内容的同步属性。可选的,在程序同步交流过程中,拥有操作权限的客户端通过设置暂停同步的方式,暂停向对方发送同步数据,由此保护该时间段内执行的操作,使其不进行同步,当客户端设置继续同步后,继续向对方发送同步数据使同步交流过程持续进行。
[0185]
结合以上实现方式,在s1202获得目标程序所包含的子内容同步属性后,在程序同步交流过程中,如图13所示,当客户端执行s1301监听到发生于一程序内容上的程序事件后,执行s1302,判断该程序内容的同步属性是否为同步内容,当确认为同步内容时,执行s1303,执行所述同步数据采集与发送处理;当确认为非同步内容时,执行s1304,不执行所述同步数据采集、发送处理。通过以上实现方式,解决在程序同步交流过程中,针对一些用户操作、数据不允许被同步的需求,例如用户输入密码、执行支付等。
[0186]
在另一种可能的实现方式中,在客户端建立点对点通信后,在目标程序的数据属性配置或同步交流程序的配置数据中获取对隐私数据的定义,对同步交流过程中的隐私数据进行保护,如图14所示,在所述客户端,s1401采集同步数据,在向数据通道发送所述同步数据之前,执行s1402,基于目标程序的数据属性配置或同步交流程序的配置数据中对隐私数据的定义,从同步数据中识别出隐私数据,并对同步数据中的隐私数据执行过滤、隐藏、
替换或按照预定的规则处理,然后,执行s1403发送同步数据。例如,在所述目标程序的数据属性配置中设定用户电话号码、证件号码、银行卡号等属于隐私数据,则在s1402中对该部分数据进行替换或隐藏处理,有效保证交流过程的隐私数据安全。
[0187]
在一种可能的实现方式中,根据音频和/或视频通道的通信状态或传输的数据,对数据通道的通信或客户端的程序操作权限进行控制、验证等操作,或者,根据数据通道的通信状态或传输的数据,对音频和/或视频通道的通信进行控制、验证等操作。该实现方式可获得由一个通道的状态或数据对另一通道的状态或数据进行验证的效果,例如:在未接通音频通信或音频中断的情况下,限制用户执行操作;在音频通信中断的情况下暂停同步数据等。
[0188]
在一种可能的实现方式中,在客户端建立点对点通信后,将其中的一个客户端逻辑上作为服务端,执行同步过程控制、操作权限分配、同步交流过程数据记录等功能。另外,以上实施例以两个客户端为例,说明基于客户端间实时通信建立程序同步交流的实现原理,但本技术并不限于在两个客户端间实施,如在以上实现方法中,由其中一个客户端逻辑上作为服务端,其它客户端与该客户端建立点对点通信,即可实现一个客户端对多个客户端交流的实施场景,在该场景中,作为“服务端”的客户端可获取到其它客户端的状态数据,并将其生成为同步数据发送至其他客户端,使连接的每一客户端可获取到其它客户端的状态信息,作为“服务端”的客户端通过音视频通道与其它客户端进行音视频交流。当在作为“服务端”的客户端产生操作时,通过数据通道同步至其他客户端,当指定其中的一个客户端执行操作时,首先同步至作为“服务端”的客户端,然后再同步至其他客户端。
[0189]
在一种可能的实现方式中,客户端间建立点对点通信后,在同步交流过程中执行内容更换,包括以下步骤:客户端a选择一待交流的内容,如本地内容文件,上传至目标程序所对应的服务端,所述服务端切换为所述内容文件的服务内容,并为客户端a中的目标程序提供服务,客户端a中的目标程序内容切换为所述内容文件,此时,在客户端a监听到目标程序内容发生变化,生成同步数据向客户端b发送以执行同步处理,由此实现两个客户端间针对某一端的本地内容进行同步交流。
[0190]
基于以上各实施例,本技术实施例还提供一种客户端,所述客户端包括点对点通信功能,可实现上述实施例中相关客户端的程序同步交流方法。参阅图15所示,所述客户端包括连接模块01、数据通信模块02、音频和/或视频通信模块03、同步控制模块04、数据同步模块05,其中:
[0191]
连接模块01,用于发送建立点对点通信的请求或许可;还用于与其它客户端建立点对点通信,该通信连接包括数据通道、音频通道和/或视频通道中的一种或多种;还用于从中间服务器获取其它客户端信息,从中选择客户端以发送请求或许可连接;
[0192]
数据通信模块02,用于传输同步数据,以及传输除音频和/或视频数据之外的其它数据;
[0193]
音频和/或视频通信模块03,用于传输音频和/或视频数据;
[0194]
同步控制模块04,用于执行程序操作权限控制,在确认客户端占有程序操作权限时执行用户操作并执行程序同步处理,在确认客户端无程序操作权限时拦截用户操作;还用于生成程序操作权限申请请求发送;还用于接收并处理程序操作权限申请请求;
[0195]
数据同步模块05,用于采集同步数据,包括:在监听到程序事件或程序内容发生变
化后序列化目标程序的内容并将其采集为同步数据,或者,监听目标程序中的程序操作事件并基于其采集生成程序操作指令作为同步数据,或者,将目标程序内容在第一canvas上执行绘制并采集其canvas数据为同步数据,或者,基于目标程序显示内容生成图片数据并将其采集为同步数据;
[0196]
所述数据同步模块05,还用于基于同步数据执行程序同步处理,包括:解析其包含的序列化后的目标程序的内容并基于序列化后的目标程序的内容更新或替换或反序列化生成客户端的目标程序内容,或者,解析其包含的程序操作指令并执行,或者,解析其包含的canvas数据显示图片或执行绘制,或者,解析其包含的图片数据并显示。
[0197]
可选的,所述客户端还包括配置模块06,用于计算生成本次程序同步交流的运行设置参数,还用于基于运行设置参数设置客户端的运行环境和/或目标程序状态。
[0198]
可选的,所述客户端还包括记录模块07,用于采集所加载的目标程序数据、用户操作数据、发送的同步数据、接收的同步数据、发送的音频和/或视频数据、接收的音频和/或视频数据中的一种或多种,并记录其发生的时间信息生成程序同步交流过程记录数据并存储。
[0199]
可选的,所述客户端还包括涂鸦模块08,用于在切换至涂鸦交流模式后,创建用于执行涂鸦交流的涂鸦canvas,还用于接收用户涂鸦操作并生成涂鸦绘制数据发送,还用于接收涂鸦绘制数据在所述涂鸦canvas上执行绘制。
[0200]
可选的,所述同步控制模块04,还用于识别与计算客户端的主从属性,包括主客户端、从客户端。
[0201]
可选的,所述同步控制模块04,在主客户端中,还用于计算生成用于执行渲染的程序内容并发送;还用于接收从客户端发送的用户操作指令并执行。
[0202]
可选的,所述同步控制模块04,在从客户端中,还用于接收程序内容并执行渲染;还用于在占有程序操作权限时监听用户操作,拦截用户操作并采集用户操作生成用户操作指令向主客户端发送。
[0203]
可选的,所述同步控制模块04,还用于计算子内容的同步属性,确认同步属性为非同步内容时,为用户提供单方执行的权限,停止相关子内容的同步数据采集、发送处理。
[0204]
可选的,所述同步控制模块04,还用于在获取到程序操作权限后启动定时器计时;还用于在接收到程序操作权限申请请求后,确定所述定时器计数值达到预定数值时自动移交程序操作权限,确定所述定时器计数值未达到预定数值时自动驳回该程序操作权限申请或执行手动处理;还用于在监听到用户操作时,在所述用户操作过程中自动驳回对方的程序操作权限申请请求,在所述用户操作结束后,重启所述定时器计时。
[0205]
可选的,所述同步控制模块04,还用于生成程序同步交流断开请求并发送;还用于接收并处理程序同步交流断开请求,断开点对点通信。
[0206]
可选的,所述数据同步模块05,还用于识别同步数据中的隐私数据,并对同步数据中的隐私数据执行过滤或隐藏或替换处理。
[0207]
基于同一发明构思,本技术实施例还提供一种基于客户端实时通信的程序同步交流系统,参考图17所示,所述系统包括中间服务器、客户端a、客户端b,所述客户端a、客户端b包括如图15、图16所示客户端功能模块,所述连接模块01a、连接模块01b与中间服务器相连接,分别向所述中间服务器发送点对点通信请求或许可,由所述中间服务器建立其之间
的点对点通信,并启动数据通信模块02a、数据通信模块02b之间的数据通信通道,以及音频和/或视频通信模块03a、音频和/或视频通信模块03b之间的音视频通信通道。
[0208]
需要说明的是,以上本技术的方法实施例中,一些步骤可以被相似的步骤取代,一些步骤可以合并、分解、调整顺序实施,因此,以上实施例并不构成对本技术所提出的一种基于客户端实时通信的程序同步交流方法的限定,另客户端相关实施例提供的模块组成也并不构成对本技术客户端的限定。另外,本技术实施例提供的部分程序同步交流方法、实现方案,针对非点对点通信模式下的同步交流场景,同样适用。
[0209]
综合以上,本技术实施例所产生的有益效果可归纳为:在客户端之间建立点对点通信,该通信方式同时包括音视频通道及数据通道,采用一种通信方式实现程序同步、音视频同步的交流环境,占用网络资源少,且易实施;充分利用客户端的网络传输能力,使音视频通信、同步数据传输不受服务器通信能力的限制,具有高效的特点,不会产生服务器通信网络阻塞等问题,一组交流用户与另一组交流用户无干扰,用户规模不受限制;在同步交流过程中用户交流数据传输不经第三方服务器,使交流数据从技术层面得到严格保护,无泄露风险;同时具有普通程序同步的优点,如画质无损、传输数据量小等优势。
[0210]
以上,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献