一种拼接墙多路转发方法、装置及系统与流程

文档序号:11881134阅读:275来源:国知局
一种拼接墙多路转发方法、装置及系统与流程

本发明涉及数据通信技术领域,尤其涉及一种拼接墙多路转发方法、装置及系统。



背景技术:

拼接墙作为专业的显示技术分支,未来发展值得期待。拼接墙具有很大的组合空间:既可以采用小屏拼接、也可以采用大屏拼接;既可以一对一单屏拼接,也可以一对M×N整屏拼接;还可以大小屏混合拼装。

随着技术发展,拼接墙技术已经不仅限于拼接墙显示了,已经越来越多技术人员深入到基于拼接墙的多端交互领域中,目前的客户端通过服务端能远程观看拼接墙的屏幕(回显显示),拼接墙会不断的发送变化的屏幕数据给客户端,令客户端所看到拼接墙回显保持最新。服务器和客户端数据交互是通过请求(framebuffer request)->应答(framebuffer)->请求(framebuffer request)的形式进行的。刚连接的时候,客户端会发送FrameFullQuest请求全屏幕数据,后面会发FrameChangeRequest,请求增量数据(屏幕变化的数据)。

然而上述的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,从而导致了拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。



技术实现要素:

本发明实施例提供的一种拼接墙多路转发方法、装置及系统,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。

本发明实施例提供的一种拼接墙多路转发方法,包括:

当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;

将所述待同步客户端添加至所述已同步队列,并将所述全部观看请求指令发送至桌面源请求全屏数据,使得在所述已同步队列中的所有所述同步客户端获取到所述全屏数据。

可选地,当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令之前还包括:

建立所述已同步队列和所述未同步队列,所述帧缓冲只发送给所述已同步队列的所述同步客户端。

可选地,当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令之前还包括:

获取到所述未同步队列的所述待同步客户端发送的所述全部观看请求,并对所述全部观看请求进行延迟处理。

可选地,当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令具体包括:

当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对所述未同步队列是否为空进行判断,若不为空,则确定在所述未同步队列中是否存在所述待同步客户端发送的所述全部观看请求指令,若不存在所述全部观看请求指令,则直接转发所述已同步队列中的所述同步客户端的观看请求指令给所述桌面源。

可选地,当对所述未同步队列的判断为空,则直接转发所述已同步队列中的所述同步客户端的观看请求指令给所述桌面源。

本发明实施例提供的一种拼接墙多路转发装置,包括:

确定单元,用于当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;

同步单元,用于将所述待同步客户端添加至所述已同步队列,并将所述全部观看请求指令发送至桌面源请求全屏数据,使得在所述已同步队列中的所有所述同步客户端获取到所述全屏数据。

可选地,拼接墙多路转发装置还包括:

建立单元,用于建立所述已同步队列和所述未同步队列,所述帧缓冲只发送给所述已同步队列的所述同步客户端;

获取单元,用于获取到所述未同步队列的所述待同步客户端发送的所述全部观看请求,并对所述全部观看请求进行延迟处理。

可选地,同步单元具体包括:

队列判断子单元,用于当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对所述未同步队列是否为空进行判断,若不为空,则触发存在判断子单元,若为空,则触发所述第一转发子单元;

所述触发存在判断子单元,用于确定在所述未同步队列中是否存在所述待同步客户端发送的所述全部观看请求指令,若不存在所述全部观看请求指令,则触发第一转发子单元,若存在所述全部观看请求指令,则触发第二转发子单元;

所述第一转发子单元,用于直接转发所述已同步队列中的所述同步客户端的观看请求指令给所述桌面源。

可选地,同步单元具体包括:

所述第二转发子单元,用于将所述待同步客户端添加至所述已同步队列,并将所述全部观看请求指令发送至桌面源请求全屏数据,使得在所述已同步队列中的所有所述同步客户端获取到所述全屏数据。

本发明实施例提供的一种拼接墙多路转发系统,包括:

拼接墙、若干个客户端,以及本实施例中提及的任意一种所述的拼接墙多路转发装置;

所述拼接墙通过所述拼接墙多路转发装置与所述客户端通信连接。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例提供的一种拼接墙多路转发方法、装置及系统,其中,拼接墙多路转发方法,包括:当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。本实施例中,通过确定未同步队列中的待同步客户端存在已发送的全部观看请求指令,然后将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,实现了在已同步队列中的所有同步客户端获取到全屏数据,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。

附图说明

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

图1为本发明实施例提供的一种拼接墙多路转发方法的一个实施例的流程示意图;

图2为本发明实施例提供的一种拼接墙多路转发方法的另一个实施例的流程示意图;

图3为本发明实施例提供的一种拼接墙多路转发装置的一个实施例的结构示意图;

图4为本发明实施例提供的一种拼接墙多路转发装置的另一个实施例的结构示意图;

图5为本发明实施例提供的一种拼接墙多路转发系统的一个实施例的结构示意图;

图6为图2结合图5的应用例示意图。

具体实施方式

本发明实施例提供的一种拼接墙多路转发方法、装置及系统,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供的一种拼接墙多路转发方法的一个实施例包括:

101、当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;

本实施例中,当需要让一个拼接墙上回显的数据转发给多个观看客户端时,首先需要在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令。

102、将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

当确定未同步队列中的待同步客户端存在已发送的全部观看请求指令之后,需要将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

本实施例中,通过确定未同步队列中的待同步客户端存在已发送的全部观看请求指令,然后将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,实现了在已同步队列中的所有同步客户端获取到全屏数据,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。

上面是对拼接墙多路转发方法的描述,下面将对具体步骤和附加步骤进行详细的描述,请参阅图2,本发明实施例提供的一种拼接墙多路转发方法的另一个实施例包括:

201、建立已同步队列和未同步队列;

本实施例中,当需要让一个拼接墙上回显的数据转发给多个观看客户端时,首先需要建立已同步队列和未同步队列,帧缓冲只发送给已同步队列的同步客户端。

202、获取到未同步队列的待同步客户端发送的全部观看请求,并对全部观看请求进行延迟处理;

当建立已同步队列和未同步队列之后,需要获取到未同步队列的待同步客户端发送的全部观看请求,并对全部观看请求进行延迟处理。

203、当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对未同步队列是否为空进行判断,若不为空,则执行步骤204,若为空,则执行步骤205;

当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对未同步队列是否为空进行判断,若不为空,则执行步骤204,若为空,则执行步骤205。

204、确定在未同步队列中是否存在待同步客户端发送的全部观看请求指令,若不存在全部观看请求指令,则执行步骤205,若存在全部观看请求指令,则执行步骤206;

当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对未同步队列是否为空进行判断不为空,则确定在未同步队列中是否存在待同步客户端发送的全部观看请求指令,若不存在全部观看请求指令,则执行步骤205,若存在全部观看请求指令,则执行步骤206。

205、直接转发已同步队列中的同步客户端的观看请求指令给桌面源;

当步骤203的对未同步队列是否为空进行判断为空,或步骤204确定在未同步队列中是否存在待同步客户端发送的全部观看请求指令为不存在全部观看请求指令,则直接转发已同步队列中的同步客户端的观看请求指令给桌面源。

206、将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

当步骤204确定在未同步队列中是否存在待同步客户端发送的全部观看请求指令为存在全部观看请求指令,则将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

下面将以一具体应用场景对图2和图5的结合进行描述,如图6所示,应用例包括:

缓存请求指令,同步framebuffer的TCP流;

拼接墙回显和观看客户端的数据交互,是用请求(framebuffer request)->应答(framebuffer)->请求的形式进行的。在中间服务器上,我们设置一个“已同步队列”和“未同步队列”。Framebuffer只发给“已同步队列”里面的观看者。

假设观看者A和B已经加入“已同步列表”。当观看者C接进来的时候,把C加入“未同步队列”。C会发full request,服务器把这命令延迟处理(先不处理)。当A或者B处理完上一段framebuffer的时候,A或B就会发incremental request,这时就是同步点。在这个同步点上,我们做以下判断和处理:

I.如果“未同步队列”为空,则直接转发A或者B的request给桌面源;

II.如果“未同步队列”不为空,并且列表里没有观看者发过request,则直接转发A或者B的request给桌面源;

III.如果“未同步队列”不为空,且列表里有观看者发过request,表示这个观看客户端已经ready去接收framebuffer,则把此观看客户端加到“已同步队列”,并且发full request给桌面源请求全屏数据,服务器把全屏数据多路组发到每个观看客户端做同步。

解决了中间服务器建立连接到拼接墙源,观看客户端再建立连接到中间服务器,由中间服务器转发framebuffer,但这样的方法所导致的以下问题:

Framebuffer是基于TCP流的,当已经有观看客户端在观看的时候,TCP数据已经在“流动”,当一个新的观看客户端接进来的时候,如果不做同步,新观看客户端就会接收到被“截断”的TCP流,即不完整的framebuffer,会引起不可预期的错误。

本实施例中,通过确定未同步队列中的待同步客户端存在已发送的全部观看请求指令,然后将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,实现了在已同步队列中的所有同步客户端获取到全屏数据,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题,以及中间服务器只需要建立一条连接到拼接墙源,就可以提供给N个观看者观看。节省了N-1倍的流量。中间服务器不做编解码,纯粹组发,可以达到接近于观看者直连拼接墙的性能。

请参阅图3,本发明实施例中提供的一种拼接墙多路转发装置的一个实施例包括:

确定单元301,用于当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;

同步单元302,用于将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

本实施例中,通过确定单元301确定未同步队列中的待同步客户端存在已发送的全部观看请求指令,然后同步单元302将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,实现了在已同步队列中的所有同步客户端获取到全屏数据,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题。

上面是对拼接墙多路转发装置的各单元进行详细的描述,下面将对子单元及附加单元进行描述,请参阅图4,本发明实施例中提供的一种拼接墙多路转发装置的另一个实施例包括:

建立单元401,用于建立已同步队列和未同步队列,帧缓冲只发送给已同步队列的同步客户端;

获取单元402,用于获取到未同步队列的待同步客户端发送的全部观看请求,并对全部观看请求进行延迟处理。

确定单元403,用于当在已同步队列中的同步客户端完成前一段的帧缓冲之后,确定未同步队列中的待同步客户端存在已发送的全部观看请求指令;

同步单元404,用于将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

同步单元404具体包括:

队列判断子单元4041,用于当在已同步队列中的同步客户端完成前一段的帧缓冲之后,对未同步队列是否为空进行判断,若不为空,则触发存在判断子单元4042,若为空,则触发第一转发子单元4043;

触发存在判断子单元4042,用于确定在未同步队列中是否存在待同步客户端发送的全部观看请求指令,若不存在全部观看请求指令,则触发第一转发子单元4043,若存在全部观看请求指令,则触发第二转发子单元4044;

第一转发子单元4043,用于直接转发已同步队列中的同步客户端的观看请求指令给桌面源。

第二转发子单元4044,用于将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,使得在已同步队列中的所有同步客户端获取到全屏数据。

本实施例中,通过确定单元403确定未同步队列中的待同步客户端存在已发送的全部观看请求指令,然后同步单元404将待同步客户端添加至已同步队列,并将全部观看请求指令发送至桌面源请求全屏数据,实现了在已同步队列中的所有同步客户端获取到全屏数据,解决了目前的服务器和客户端数据交互是请求、应答、请求的形式进行的对于单点服务网络接入和硬件处理能力提出极高要求,当客户端数量增多时,容易导致多路连接堵塞的问题,并且多个客户端请求的数据大部分是相同的,导致的拼接墙多次抓无用的图以及端间传输冗余的数据,浪费带宽的技术问题,以及中间服务器只需要建立一条连接到拼接墙源,就可以提供给N个观看者观看。节省了N-1倍的流量。中间服务器不做编解码,纯粹组发,可以达到接近于观看者直连拼接墙的性能。

请参阅图5,本发明实施例中提供的一种拼接墙多路转发系统的一个实施例包括:

拼接墙51、若干个客户端52,以及图3和图4提及的拼接墙多路转发装置53;

拼接墙51通过拼接墙多路转发装置52与客户端53通信连接。

需要说明的是,拼接墙多路转发装置53可以是图6中提及的中间服务器。

解决了中间服务器建立连接到拼接墙源,观看客户端再建立连接到中间服务器,由中间服务器转发framebuffer,但这样的方法所导致的以下问题:

Framebuffer是基于TCP流的,当已经有观看客户端在观看的时候,TCP数据已经在“流动”,当一个新的观看客户端接进来的时候,如果不做同步,新观看客户端就会接收到被“截断”的TCP流,即不完整的framebuffer,会引起不可预期的错误。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1