CN119071343B - 一种云桌面系统、方法、装置、电子设备 - Google Patents
一种云桌面系统、方法、装置、电子设备 Download PDFInfo
- Publication number
- CN119071343B CN119071343B CN202411573204.4A CN202411573204A CN119071343B CN 119071343 B CN119071343 B CN 119071343B CN 202411573204 A CN202411573204 A CN 202411573204A CN 119071343 B CN119071343 B CN 119071343B
- Authority
- CN
- China
- Prior art keywords
- cloud desktop
- target
- server
- data stream
- instruction
- 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.)
- Active
Links
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/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
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为本申请实施例提供的一种云桌面系统进行采集用户音频数据的交互示意图;
图4为本申请实施例提供的另一种云桌面系统进行采集用户音频数据的交互示意图;
图5为本申请实施例提供的一种云桌面系统进行多用户屏幕共享时的交互示意图;
图6为本申请实施例提供的一种云桌面系统进行监控的交互示意图;
图7为本申请实施例提供的另一种云桌面系统进行监控的交互示意图;
图8为本申请实施例提供的一种基于云桌面的数据处理方法的流程示意图;
图9为本申请实施例提供的一种基于云桌面的数据处理装置的流程示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
本申请的技术方案中,所涉及的用户个人信息的获取、存储、使用、加工、传输、提供和公开等操作,均是在已取得用户授权的情况下进行的。
为了有效降低云桌面屏幕共享所消耗的计算资源,本申请实施例提供了一种云桌面系统,该云桌面系统可以包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件;
目标云桌面服务端,用于响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的第一调用指令,向所述目标云桌面服务端对应的目标服务组件发送屏幕共享指令;其中, 所述目标云桌面服务端为所述多个云桌面服务端中任一云桌面服务端;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
所述目标服务组件,用于响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流;其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流;
每一云桌面用户端,用于在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息;在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的 情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
所述流媒体服务端,用于存储所述目标数据流,以及响应于任一云桌面用户端的针对所述目标数据流的获取请求,向该云桌面用户端反馈所述目标数据流。
本实施例提供的方案,由于所述目标云桌面服务端对应的目标服务组件在工作时,本身就可以获取所述目标云桌面服务端的目标数据流来发送给目标云桌面用户端。因此,在所述目标服务组件接收到所述屏幕共享指令后,可以在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,各个属于共享接收方的云桌面用户端可以从所述流媒体服务中获取到目标数据流,从而完成对所述目标云桌面服务端的屏幕共享。可见,本申请的方案整个过程中,并不需要额外消耗资源来采集目标云桌面服务端的屏幕内容,从而可以有效降低云桌面屏幕共享所消耗的计算资源。
下面结合附图,对本申请实施例所提供的一种云桌面系统进行介绍。图1为本申请提供的一种云桌面系统的结构示意图。如图1所示,云桌面系统包括多个云桌面服务端101、每一云桌面服务端对应的云桌面用户端102和服务组件103,以及,流媒体服务端104和消息中间件105;
目标云桌面服务端,用于响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的第一调用指令,向所述目标云桌面服务端对应的目标服务组件发送屏幕共享指令;其中,所述目标云桌面服务端为所述多个云桌面服务端101中任一云桌面服务端;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
云桌面服务端是部署于云端服务器中的。示例性的,图2为本申请实施例提供的一种云桌面系统进行屏幕共享时的交互示意图。如图2所示,服务器中具有Host OS(HostOperating System,宿主机操作系统),在Host OS中可以部署有QEMU(Quick EMUlator),QEMU是一个开源的机器模拟器和虚拟化器,它允许你在一个平台上模拟另一个平台的硬件环境。QEMU可以模拟多种处理器架构,并且可以在这些模拟的硬件上运行各种操作系统和应用程序。可以理解的是,所述QEMU可以作为一种虚拟机。Guest OS(Guest OperatingSystem,子操作系统),它是指安装在虚拟机中的操作系统。本申请中,所述QEMU可以具有多个Guest OS。本申请对宿主机操作系统和子操作系统的具体类型不做限定。本申请的云桌面服务端,就是上述子操作系统,当然,也可以是云桌面服务端部署于上述子操作系统。图2中,所述VDI Agent(虚拟桌面基础架构代理),可以用于发送操作指令,优化传输协议以及管理桌面资源。可以理解的是,所述VDI Agent属于所述云桌面服务端的,用于数据处理的模块。所述Streaming Media Server就是上述的流媒体服务端。图2中,Client OS为客户端操作系统,也就是用户所使用的电子设备的操作系统。所述VDI Client就是上述云桌面用户端,部署于所述Client OS。所述VDI Server与上述服务组件对应,即VDI Server可以为上述的服务组件,VDI为虚拟桌面基础架构(Virtual Desktop Infrastructure)。其中,所述VDI Server与所述Streaming Media Server之间,以及所述Streaming Media Server与所述VDI Client可以通过RTSP(Real Time Streaming Protocol,实时流协议)进行通信。所述VDI Server与所述VDI Client可以通过VDI protocol(VDI协议)进行通信。
可以理解的是,云桌面服务端中可以安装各种软件,本申请的云桌面服务端,可以为运行于云桌面服务端的目标软件提供相应的接口,在软件调用接口后,执行相应的操作。可以理解的是,本申请的云桌面的接口,都是可以预先提供给各个软件的。所述教学软件教师端和所述教学软件学生端就是所述目标软件,可以理解的是教学软件教师端和教学软件学生端是属于同一软件的。
下面,简单介绍云桌面的工作方式。云桌面服务端,可以运行各种软件,服务组件可以获取云桌面服务端对应的目标数据,发送给云桌面用户端,云桌面用户端可以获取所述目标数据进行展示。且所述服务组件具有鼠标通道和键盘通道,用户在云桌面用户端利用鼠标和/或键盘进行操作,对应的操作信息可以通过所述服务组件的鼠标通道和/或键盘通道发送给云桌面服务端,云桌面服务端响应于接收到所述操作信息,执行相应的操作,从而用户可以实现远程对云桌面服务端进行操作。
本申请的方案可以应用于多种场景,例如教学场景,教师和学生可以具有对应的电子设备,该电子设备部署有云桌面用户端,示例性的,如图2所示,该场景下,目标软件可以分为教学软件教师端和教学软件学生端。本申请中,该电子设备可以是定制化的专门用于运行云桌面用户端的设备,也可以是常规的手机、平板和电脑等设备。任一存在屏幕共享的场景,都可以应用本申请的云桌面系统。
并且,可以理解的是,本申请的云桌面系统中,云桌面用户端可以用于基于目标数据,显示云桌面服务端对应的音视频,并不需要消耗资源进行其它操作,因此,本申请的方案对运行云桌面用户端对应的设备的硬件要求较低,从而本申请的方案适用性强。
本申请的云桌面系统在具体的使用场景中,多个不同用户各自对应有云桌面用户端,每一用户的云桌面用户端与该云桌面用户端对应的云桌面服务端通过对应的服务组件通信,从而每一云桌面用户端可以显示对应的云桌面服务端的内容。本申请中,每一云桌面用户端对应有唯一的云桌面服务端和唯一的服务组件。
本申请中,任一目标用户想要向其它用户共享屏幕,就可以针对所述目标软件执行屏幕共享操作,例如,点击所述目标软件对应的屏幕共享按钮。用户在所述目标软件执行屏幕共享操作后,所述目标软件就可以调用所述第一调用指令。并且,可以理解的是,所述屏幕共享操作为目标用户通过所述目标云桌面服务端对应的目标云桌面用户端,所发出的操作。本申请中,将作为屏幕共享方的用户,称为目标用户。
本申请中,所述目标云桌面服务端的第一调用指令被触发后,可以向目标服务组件发送屏幕共享指令。可以理解的是,所述目标用户针对所述目标软件执行屏幕共享操作的时候,可以选择共享接收方,例如,选择用户A、用户B和用户C作为共享接收方,当然,可以选择全部共享。从而所述屏幕共享指令中,可以包含有共享接收方的信息。
所述目标服务组件,用于响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流;其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流。
本申请中,所述消息中间件可以与各个服务组件进行通信,从而,目标服务组件在响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件后,各个云桌面用户端可以从所述消息中间件获取到所述屏幕共享消息。
云桌面运行时,目标服务组件可以获取云桌面服务端的目标数据流,传输给云桌面用户端,从而,所述云桌面用户端可以显示云桌面服务端的内容。本申请中,目标服务组件在接收到所述屏幕共享指令后,可以将目标云桌面服务端的目标数据流传输给所述目标云桌面用户端的同时,传输给所述流媒体服务端。
本申请中,所述流媒体服务端可以与各个服务组件和各个云桌面用户端相通信。
每一云桌面用户端102,用于在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息;在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;所述流媒体服务端,用于存储所述目标数据流,以及响应于任一云桌面用户端的针对所述目标数据流的获取请求,向该云桌面用户端反馈所述目标数据流。
本申请中,所述各个云桌面用户端,可以作为所述消息中间件的订阅方,从而,各个云桌面用户端,可以从所述消息中间件中实时获取消息,也就是可以实现对所述消息中间件存储的消息进行实时监听。在监听到所述消息中间件存储有屏幕共享消息的情况下,就可以从所述消息中间件获取所述屏幕共享消息。所述共享消息中包括有共享接收方的信息,例如共享接收方的标识等等,从而,每一个云桌面用户端可以分析所述共享消息来确定该云桌面用户端是否为共享接收方。
本申请的方案使用所述消息中间件传输屏幕共享消息,是为了降低云桌面系统的耦合性,从而可以提高系统的可扩展性、可靠性和灵活性。
基于上述实施例的介绍可知,在不进行共享屏幕的情况下,每一云桌面用户端是接收对应的云桌面服务端的目标数据,进行显示的;而当任意一个云桌面用户端分析出该云桌面用户端为分享对象时,说明该云桌面用户端需要显示的是屏幕共享方的内容,因此,此时该云桌面用户端可以停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流。
本实施例中,屏幕分享时,共享接收方原本连接的音视频流停止传输,可以减少额外的带宽消耗。
本实施例提供的方案,由于所述目标云桌面服务端对应的目标服务组件在工作时,本身就可以获取所述目标云桌面服务端的目标数据流来发送给目标云桌面用户端。因此,在所述目标服务组件接收到所述屏幕共享指令后,可以在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,各个属于共享接收方的云桌面用户端可以从所述流媒体服务中获取到目标数据流,从而完成对所述目标云桌面服务端的屏幕共享。可见,本申请的方案整个过程中,并不需要额外消耗资源来采集目标云桌面服务端的屏幕内容,从而可以有效降低云桌面屏幕共享所消耗的计算资源。
此外,应用本申请的方案,各个第三方软件在针对云桌面无需自己开发屏幕广播功能,直接调用云桌面提供的接口就可以来实现屏幕广播功能,可以有效避免软件自带的屏幕广播功能不兼容云桌面的情况。
可选的,所述目标服务组件,还用于响应于接收到所述屏幕共享指令,向所述目标云桌面用户端发送音频采集指令;
所述目标云桌面用户端,用于响应于所述音频采集指令,调用所述目标云桌面用户端所属设备的音频采集单元,进行音频数据采集,将所采集到的音频数据传输至所述流媒体服务端;
所述流媒体服务端还用于接收所述目标云桌面用户端发送的音频数据,以及响应于任一云桌面用户端的目标数据流的获取请求,向该云桌面用户端反馈所接收到的音频数据。
可以理解的是,在屏幕共享的过程中,所述目标用户可以发出声音,目标用户的声音也需要进行共享。
如图3所示,为本申请实施例提供的一种云桌面系统进行采集用户音频数据的交互示意图,该示意图是一种常规的屏幕共享场景,采集用户音频数据的方案。在该常规方案中,为了获取到所述目标用户的声音,运行于Guest OS(指上述云桌面服务端)的所述目标软件,从虚拟机中通过虚拟设备来采集VDI Client(指上述云桌面用户端)的麦克风声音,这个过程称为麦克风重定向。从图3可以看到,该种方案中,所采集到的音频数据,需要从VDI Client传输到VDI Server,再从VDI Server(指上述服务组件)传输到VDI Agent,再由VDI Agent传输到目标软件,目标软件将音频数据对应的录音编码后推流给StreamingMedia Server(指上述流媒体服务端)。再由Streaming Media Server取流,将音频数据发送给另一VDI Client。由于所述音频数据经过多次传输,传输过程较为复杂,会产生较大的延迟。图3中涉及到的QEMU、Host OS、VDI Agent以及Client OS的物理意义与上述实施例中相同,在此不多做赘述。
如图4所示,是本申请提供的另一种云桌面系统进行采集用户音频数据的交互示意图。该示意图对应的方案是本申请改进后的方案。具体的,如图4所示,Streaming MediaServer(指上述流媒体服务端)在获取到Guest OS(指上述云桌面服务端)的目标数据流的同时,可以获取到VDI Client(指上述云桌面用户端)的音频数据,可以理解的是,所述目标数据流对应的音视频和所述音频数据对应的音频是同步的,因此,所述Streaming MediaServer可以将所述目标数据流和所述音频数据同步发送给作为共享接收方的VDI Client,或者所述Streaming Media Server可以将所述目标数据流和所述音频数据进行合成后,将合成后的数据发送给作为共享接收方的VDI Client。并且,如图4所示,所述Guest OS的目标数据流可以是由VDI Server(指上述服务组件)进行抓屏及编码得到的,当然,本申请中目标数据流也可以是由所述Guest OS针对当前内容进行编码后发送给VDI Server的,本申请对目标数据流的确定方式不做限定。如图4所示,本实施例的方案不需要目标软件参与。
图4中涉及到的QEMU、Host OS、VDI Agent以及Client OS的物理意义与上述实施例中相同,在此不多做赘述。可见,本申请的方案,可以使得目标云桌面用户端的音频数据,直接发送至流媒体服务端,流程简单,资源消耗低,延迟小,用户体验好。
可选的,所述第一调用指令中携带有用于表征作为共享接收方的用户标识的目标信息;其中,所述作为共享接收的用户标识包括所述屏幕共享操作所指示的关于目标软件的各个用户账号;
所述目标云桌面服务端向所述目标云桌面服务端对应的目标服务组件发送屏幕共享指令,具体为:
向所述目标云桌面服务端对应的目标服务组件发送携带有所述目标信息的屏幕共享指令;
所述目标服务组件将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件具体为:
将携带有所述目标信息的针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件;
每一云桌面用户端基于所述屏幕共享消息判断该云桌面用户端属于共享接收方的方式包括:
判断该云桌面用户端对应的用户标识,是否属于所述屏幕共享消息所携带的目标消息表征的用户标识,若是,则判定该云桌面用户端属于共享接收方;其中,该云桌面用户端对应的用户标识为运行于对应的云桌面服务端的目标软件的登录用户的用户账号。
可以理解的是,每一云桌面的用户需要在各自的云桌面服务端登录目标软件的账号,从而,每一云桌面用户端和用户在该云桌面用户端对应的云桌面服务端登录的目标软件的账号具有对应关系。因此,任一云桌面用户端再获取到所述屏幕共享消息后,可以基于该云桌面用户端与用户账号之间的对应关系,确定该云桌面用户端对应的用户账号,是否属于屏幕共享消息中所携带的所述目标信息表征的用户账号, 若是,则该云桌面用户端作为共享接收方。
本实施例的实现方式,只是确定共享接收方的一种实现方式,还可以存在其它确定共享接收方的方式。示例性的,所述第一调用指令中可以携带有用于表征作为共享接收方的云桌面用户端的标识,所述屏幕共享消息也可以携带有所述表征作为共享接收方的云桌面用户端的标识,从而,每一云桌面用户端可以利用携带有所述表征作为共享接收方的云桌面用户端的标识的屏幕共享消息,确定该云桌面用户端是否属于共享接收方。本申请对确定共享接收方的实现方式不做限定。
可选的,所述目标云桌面服务端,还用于响应于运行在所述目标云桌面服务端的目标软件对第二应用程序接口的第二调用指令,向所述目标云桌面服务端对应的目标服务组件发送针对共享结束指令;其中,所述第二调用指令为运行在所述目标云桌面服务端的目标软件响应于结束共享操作所发送的指令。
本申请中,所述第一接口和第二接口可以是相同或不同的接口。所述第一接口和第二接口是相同的接口的情况下,由于调用所述接口时,调用指令所携带的参数不同,从而可以触发所述接口实现不同的功能。
所述结束共享操作为目标用户通过所述目标云桌面服务端对应的目标云桌面用户端,针对所述目标软件发出的操作。
本申请中,按照上述实施例的方案可以将所述目标云桌面服务端的屏幕内容,分享给各个作为共享接收方的云桌面接收方。在屏幕共享的过程中,若需要结束屏幕共享,则所述目标用户,可以在运行在所述目标云桌面服务端的目标软件进行用于结束屏幕共享的操作,例如,所述目标用户可以针对所述目标软件点击表征结束共享的按钮。响应于所述目标用户针对所述目标软件进行用于结束屏幕共享的操作,所述目标软件对所述目标云桌面服务端的第二应用程序接口发出第二调用指令。可以理解的是,所述目标用户针对所述目标软件的操作,是在所述目标云桌面用户端进行远程操作的。
所述目标服务组件,还用于响应于接收到所述结束共享指令,将针对所述目标云桌面服务端的结束共享消息,发布至所述消息中间件,以及停止向所述流媒体服务端同步传输所述目标数据流;
所述结束共享指令的传递方式与所述屏幕共享指令的传递方式相同,在此不多做赘述。
每一云桌面用户端,用于在从所述流媒体服务端中获取目标数据流的过程中,若监听到所述消息中间件存储有结束共享消息,停止从所述流媒体服务端中获取目标数据流,且从该云桌面用户端对应的服务组件获取对应的云桌面服务端的音视频数据流。
可以理解的是,作为所述消息中间件的订阅方的云桌面用户端,都可以获取到所述结束共享消息,若获取到的所述结束共享消息的任一云桌面用户端当前不是共享方,则可以不做响应,若获取到的所述结束共享消息的任一云桌面用户端当前是共享方,则可以针对所述结束共享消息进行响应,具体可以是停止从所述流媒体服务端中获取目标数据流,且从该云桌面用户端对应的服务组件获取对应的云桌面服务端的音视频数据流。
可见,本申请的实施例,可以在进行屏幕共享的过程中,有效实现对屏幕共享的结束。
可选的,所述目标云桌面服务端,还用于响应于运行在所述目标云桌面服务端的目标软件对第三应用程序接口的第三调用指令,向所述目标云桌面服务端对应的目标服务组件发送关于多用户屏幕共享的目标共享指令;其中,所述第三调用指令为运行在所述目标云桌面服务端的目标软件响应于关于多用户屏幕共享的目标操作,所发送的携带有指定信息的指令;所述指定信息用于表征作为屏幕共享方的多用户的关于目标软件的用户账号,所述目标共享指令携带有所述指定信息;
可以存在需要将多个用户的屏幕内容共同进行分享的场景。此时,可以将任一云桌面服务端作为所述目标云桌面服务端。当然,通常情况下,所述目标云桌面服务端,在教学场景下,可以是教师使用的云桌面服务端,在会议场景下,可以是主持人使用的云桌面服务端,本申请对目标云桌面服务端不做限定。
所述目标云桌面服务端对应的用户可以操作所述目标云桌面服务端的所述目标软件,选择需要进行共享的各个用户。基于所述目标云桌面服务端对应的用户选择需要进行共享的各个用户的操作,所述目标云桌面服务端的所述目标软件可以向所述目标软件对应的服务器发送携带有所述指定信息的共享请求,同时,所述目标软件对所述目标云桌面服务端的所述第三应用程序接口发出第三调用指令。
所述目标服务组件,还用于响应于接收到所述目标共享指令,将用于表征多用户屏幕共享的目标共享消息,发布至所述消息中间件,以及向流媒体服务端发送携带有所述指定信息的数据流合成指令;
所述指定信息用于表征作为屏幕共享方的多用户的关于目标软件的用户账号。
除目标云桌面服务端以外的每一云桌面服务端,用于响应于运行于该云桌面服务端的目标软件对于第四应用程序接口的第四调用指令,向该云桌面服务端对应的第一服务组件,发送指定共享指令;其中,所述第四调用指令为运行于该云桌面服务端的目标软件在接收到对应的软件服务器发送的多用户共享指令后,所发送的指令;所述软件服务器用于接收运行在目标云桌面服务端的目标软件发送的携带有所述指定信息的共享请求后,向基于所述各个用户账号登录的目标软件发送多用户共享指令。
针对除目标云桌面服务端以外的任一云桌面服务端,若该云桌面服务端运行的所述目标软件,接收到对应的软件服务器发送的多用户共享指令,则说明该云桌面服务端运行的所述目标软件所登录的账号,是作为屏幕共享方的用户账号。任一云桌面服务端运行的所述目标软件,接收到对应的软件服务器发送的多用户共享指令后,可以针对该云桌面服务端的第四应用程序接口发送第四调用指令。
每一第一服务组件,用于响应于接收到指定共享指令,停止向对应的云桌面用户端发送对应的云桌面服务端的音视频数据,且向所述流媒体服务端发送关于对应的云桌面服务端的且关联有所接收到的指定共享指令中的目标账号的音视频数据;
所述第一服务组件,是指所运行的所述目标软件接收到对应的软件服务器发送的多用户共享指令的云桌面服务端,对应的服务组件。
所述流媒体服务端,还用于接收所述数据流合成指令,针对接收到的各音视频数据流,进行数据流合成,得到一路合成数据流。
一种实现方式中,所述接收所述数据流合成指令,针对接收到的各音视频数据流,进行数据流合成,得到一路合成数据流可以是所述流媒体服务端接收到所述数据流合成指令后,直接针对接收到的各音视频数据流,进行数据流合成,得到一路合成数据流。
通常,在多用户屏幕共享的场景中,所述流媒体服务端所接收到的各音视频数据流,就是所述指定信息表征的用户账号所登录的目标软件所运行的云桌面服务端的音视频数据流。因此,所述流媒体服务端在接收到所述数据流合成指令后,可以直接针对所接收到的音视频流进行数据流合成。
一种实现方式中,所述接收所述数据流合成指令,针对接收到的各音视频数据流,进行数据流合成,得到一路合成数据流,可以是所述流媒体服务端接收到携带有所述指定信息的数据流合成指令后,针对接收到的各音视频数据流,确定各音视频数据流是否为所述指定信息表征的用户账号所登录的目标软件所运行的云桌面服务端的各音视频数据流,将各个为所述指定信息表征的用户账号所登录的目标软件所运行的云桌面服务端的各音视频数据流,进行数据流合成,得到一路合成数据流。
当然,也存在特殊情况导致非屏幕共享方的各音视频数据流传输给所述流媒体服务端,因此,本申请的所述流媒体服务端可以基于所述数据流合成指令携带的所述指定信息对各音视频数据流进行分析,只将属于屏幕共享方的各音视频数据流进行数据流合成。
每一云桌面用户端,用于监听到消息中间件中存储有目标共享消息时,停止从对应的服务组件获取关于对应的云桌面服务端的音视频数据流,从所述流媒体服务端获取所述合成数据流以进行播放。
作为屏幕共享方的用户,对应的云桌面用户端也是可以获取到所述合成数据流进行播放的,可以理解的是屏幕共享方的用户在进行屏幕共享的过程,也是可以通过云桌面用户端,操作对应的云桌面服务端的所述目标软件的,当然,作为屏幕共享方的用户,对应的云桌面用户端也可以仅仅显示该用户的云桌面服务端的内容。
图5是本申请提供的一种云桌面系统进行多用户屏幕共享时的交互示意图。
如图5所示,本申请实施例的方案,可以在进行多用户屏幕共享的场景中,Streaming Media Server(指上述流媒体服务端)可以获取作为屏幕共享方的多用户的Guest OS(指上述云桌面服务端)的音视频数据,进行数据流合成,得到一路合成数据流,各个VDI Client(指上述云桌面用户端)可以获取所述合成数据流进行播放,从而实现多用户屏幕共享。具体的,图5中右边两个Guest OS是作为共享方的,其音视频数据被StreamingMedia Server获取,进行数据流合成,得到一路合成数据流,从而,各个Guest OS可以从所述Streaming Media Server中获取合成数据流进行显示。且,本申请实施例的方案中,由于所述作为屏幕共享方的多用户的Guest OS对应的VDI Server(指上述服务组件)在工作时,本身就可以获取所述Guest OS的音视频数据流来发送给对应的VDI Client,本申请实施例的方案并不需要额外消耗资源来采集各音视频数据,从而可以有效降低云桌面屏幕共享所消耗的计算资源。
图5中涉及到的目标软件、QEMU、Host OS、VDI Agent、API、VDI Protocol、RTSP和Client OS的物理意义与上述实施例中相同,在此不多做赘述。
可选的,所述系统还包括视频存储端;
每一服务组件通过指定网络与所述视频存储端相通信,所述指定网络为不同于目标网络的通信网络,所述目标网络为每一服务组件与对应的云桌面服务端相通信所使用的通信网络;
每一服务组件,还用于在向对应的云桌面用户端发送关于对应的云桌面服务端的音视频数据的过程中,将关于对应的云桌面服务端的音视频数据同步发送至所述视频存储端,以进行音视频数据的存储。
在云桌面的应用过程中,可以存在保存云桌面画面的需求。图6为一种云桌面系统进行监控的交互示意图。图6对应的方案是常规的方案。如图6所示,需要在Guest OS(指上述云桌面服务端)安装监控程序,由所述监控程序使用Guest OS的资源,实时对所述GuestOS进行数据采集,并将采集到的数据发送给视频存储设备。需要消耗Guest OS的资源,且,本申请中各个Guest OS内部通过业务网络进行通信,而该种方案由于所述监控程序直接连接Guest OS外部的视频存储设备,从而造成外部网络与所述业务网络进行连接,打破了网络隔离,可能对Guest OS的网络安全造成影响。且,由于不同Guest OS对应的系统不同,该种方式需要针对不同的系统开发对应的监控软件,因此,该种方式成本较高,泛用性差。
图6中涉及到的QEMU、Host OS、VDI Agent、VDI Server、VDI Client以及ClientOS的物理意义与上述实施例中相同,在此不多做赘述。且图6中Client是指针对视频存储设备进行内容的回放的客户端。
图7为本申请实施例提供的另一种云桌面系统进行监控的交互示意图。图7的方案是本申请改进后的方案。如图7所示,可以对服务组件发送给云桌面用户端的目标数据进行复用,由服务组件将所述目标数据推流给视频存储设备,从而无需由监控软件采集数据,减少了对Guest OS(指上述云桌面服务端)的资源消耗。且,本实施例的方案,由虚拟机的网络与所述视频存储设备进行通信,可以有效降低对云桌面服务端的网络安全造成影响。
图7中涉及到的QEMU、Host OS、VDI Agent、VDI Server、VDI Client以及ClientOS的物理意义与上述实施例中相同,在此不多做赘述。且图7中Client是指针对视频存储设备进行内容的回放的客户端。
可选的,每一服务组件还用于在向对应的云桌面用户端发送关于对应的云桌面服务端的音视频数据的过程中,将目标事件信息作为关于对应的云桌面服务端的音视频数据的关联信息,发送至所述视频存储端;
其中,所述目标事件信息包括该服务组件对应的云桌面服务端发生的鼠标事件和键盘事件的事件信息。
上述实施例介绍了服务组件包括有键盘通道和鼠标通道,用来向云桌面服务端传输用户在云桌面用户端执行的键盘操作和鼠标操作。因此,所述服务组件可以将对应的鼠标事件和键盘事件的事件信息,作为云桌面服务端的音视频数据的关联信息,发送至所述视频存储端。所述鼠标事件和键盘事件的事件信息,就是用户执行的键盘操作和鼠标操作对应的信息。后续利用所述视频存储端回放音视频数据时,可以将对应的键盘和鼠标操作进行展示。
对应于上述云桌面系统,本申请实施例提供了一种基于云桌面的数据处理方法,所述方法应用于云桌面系统中的目标服务组件,所述云桌面系统包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件,所述目标服务组件为目标云桌面服务端对应的服务组件;所述目标云桌面服务端为云桌面系统中的任一云桌面服务端;图8为本申请实施例提供的一种基于云桌面的数据处理方法的流程示意图,所述方法包括:
S801,接收目标云桌面服务端发送的屏幕共享指令;其中,所述屏幕共享指令为所述目标云桌面服务端响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的 第一调用指令,向所述目标服务组件发送的指令;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
S802,响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,以使得每一云桌面用户端在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息,以及在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流。
关于上述方法中的各个步骤的具体实现方式,可以参见上述的针对云桌面系统的实施例中的内容,在此不做赘述。
本实施例提供的方案,由于所述目标云桌面服务端对应的目标服务组件在工作时,本身就可以获取所述目标云桌面服务端的目标数据流来发送给目标云桌面用户端。因此,在所述目标服务组件接收到所述屏幕共享指令后,可以在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,各个属于共享接收方的云桌面用户端可以从所述流媒体服务中获取到目标数据流,从而完成对所述目标云桌面服务端的屏幕共享。可见,本申请的方案整个过程中,并不需要额外消耗资源来采集目标云桌面服务端的屏幕内容,从而可以有效降低云桌面屏幕共享所消耗的计算资源。
对应于上述基于云桌面的数据处理方法,本申请提供了一种云桌面的数据处理装置,图9为本申请实施例提供的一种云桌面的数据处理装置的结构示意图;所述装置应用于云桌面系统中的目标服务组件,所述云桌面系统包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件,所述目标服务组件为目标云桌面服务端对应的服务组件;所述目标云桌面服务端为云桌面系统中的任一云桌面服务端;所述装置包括:
接收模块901,用于接收目标云桌面服务端发送的屏幕共享指令;其中,所述屏幕共享指令为所述目标云桌面服务端响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的 第一调用指令,向所述目标服务组件发送的指令;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
发布模块902,用于响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,以使得每一云桌面用户端在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息,以及在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流。
本实施例提供的方案,由于所述目标云桌面服务端对应的目标服务组件在工作时,本身就可以获取所述目标云桌面服务端的目标数据流来发送给目标云桌面用户端。因此,在所述目标服务组件接收到所述屏幕共享指令后,可以在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,各个属于共享接收方的云桌面用户端可以从所述流媒体服务中获取到目标数据流,从而完成对所述目标云桌面服务端的屏幕共享。可见,本申请的方案整个过程中,并不需要额外消耗资源来采集目标云桌面服务端的屏幕内容,从而可以有效降低云桌面屏幕共享所消耗的计算资源。
本申请实施例还提供了一种电子设备,如图10所示,包括:
存储器1001,用于存放计算机程序;
处理器1002,用于执行存储器1001上所存放的程序时,实现上述任一所述的基于云桌面的数据处理方法。
并且上述电子设备还可以包括通信总线和/或通信接口,处理器1002、通信接口、存储器1001通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于云桌面的数据处理方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于云桌面的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者固态硬盘(Solid StateDisk,SSD)等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种云桌面系统,其特征在于,包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件;
目标云桌面服务端,用于响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的第一调用指令,向所述目标云桌面服务端对应的目标服务组件发送屏幕共享指令;其中,所述目标云桌面服务端为所述多个云桌面服务端中任一云桌面服务端;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
所述目标服务组件,用于响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流;其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流;
每一云桌面用户端,用于在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息;在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
所述流媒体服务端,用于存储所述目标数据流,以及响应于任一云桌面用户端的针对所述目标数据流的获取请求,向该云桌面用户端反馈所述目标数据流。
2.根据权利要求1所述的系统,其特征在于,所述第一调用指令中携带有用于表征作为共享接收方的用户标识的目标信息;其中,所述作为共享接收的用户标识包括所述屏幕共享操作所指示的关于目标软件的各个用户账号;
所述目标云桌面服务端向所述目标云桌面服务端对应的目标服务组件发送屏幕共享指令,具体为:
向所述目标云桌面服务端对应的目标服务组件发送携带有所述目标信息的屏幕共享指令;
所述目标服务组件将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件具体为:
将携带有所述目标信息的针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件;
每一云桌面用户端基于所述屏幕共享消息判断该云桌面用户端属于共享接收方的方式包括:
判断该云桌面用户端对应的用户标识,是否属于所述屏幕共享消息所携带的目标消息表征的用户标识,若是,则判定该云桌面用户端属于共享接收方;其中,该云桌面用户端对应的用户标识为运行于对应的云桌面服务端的目标软件的登录用户的用户账号。
3.根据权利要求1或2所述的系统,其特征在于,
所述目标云桌面服务端,还用于响应于运行在所述目标云桌面服务端的目标软件对第二应用程序接口的第二调用指令,向所述目标云桌面服务端对应的目标服务组件发送针对共享结束指令;其中,所述第二调用指令为运行在所述目标云桌面服务端的目标软件响应于结束共享操作所发送的指令;
所述目标服务组件,还用于响应于接收到所述结束共享指令,将针对所述目标云桌面服务端的结束共享消息,发布至所述消息中间件,以及停止向所述流媒体服务端同步传输所述目标数据流;
每一云桌面用户端,用于在从所述流媒体服务端中获取目标数据流的过程中,若监听到所述消息中间件存储有结束共享消息,停止从所述流媒体服务端中获取目标数据流,且从该云桌面用户端对应的服务组件获取对应的云桌面服务端的音视频数据流。
4.根据权利要求1或2所述的系统,其特征在于,
所述目标云桌面服务端,还用于响应于运行在所述目标云桌面服务端的目标软件对第三应用程序接口的第三调用指令,向所述目标云桌面服务端对应的目标服务组件发送关于多用户屏幕共享的目标共享指令;其中,所述第三调用指令为运行在所述目标云桌面服务端的目标软件响应于关于多用户屏幕共享的目标操作,所发送的携带有指定信息的指令;所述指定信息用于表征作为屏幕共享方的多用户的关于目标软件的用户账号,所述目标共享指令携带有所述指定信息;
所述目标服务组件,还用于响应于接收到所述目标共享指令,将用于表征多用户屏幕共享的目标共享消息,发布至所述消息中间件,以及向流媒体服务端发送携带有所述指定信息的数据流合成指令;
除目标云桌面服务端以外的每一云桌面服务端,用于响应于运行于该云桌面服务端的目标软件对于第四应用程序接口的第四调用指令,向该云桌面服务端对应的第一服务组件,发送指定共享指令;其中,所述第四调用指令为运行于该云桌面服务端的目标软件在接收到对应的软件服务器发送的多用户共享指令后,所发送的指令;所述软件服务器用于接收运行在目标云桌面服务端的目标软件发送的携带有所述指定信息的共享请求后,向基于所述各个用户账号登录的目标软件发送多用户共享指令;
每一第一服务组件,用于响应于接收到指定共享指令,停止向对应的云桌面用户端发送对应的云桌面服务端的音视频数据,且向所述流媒体服务端发送关于对应的云桌面服务端的且关联有所接收到的指定共享指令中的目标账号的音视频数据;
所述流媒体服务端,还用于接收所述数据流合成指令,针对接收到的各音视频数据流,进行数据流合成,得到一路合成数据流;
每一云桌面用户端,用于监听到消息中间件中存储有目标共享消息时,停止从对应的服务组件获取关于对应的云桌面服务端的音视频数据流,从所述流媒体服务端获取所述合成数据流以进行播放。
5.根据权利要求1或2所述的系统,其特征在于,所述目标服务组件,还用于响应于接收到所述屏幕共享指令,向所述目标云桌面用户端发送音频采集指令;
所述目标云桌面用户端,用于响应于所述音频采集指令,调用所述目标云桌面用户端所属设备的音频采集单元,进行音频数据采集,将所采集到的音频数据传输至所述流媒体服务端;
所述流媒体服务端还用于接收所述目标云桌面用户端发送的音频数据,以及响应于任一云桌面用户端的目标数据流的获取请求,向该云桌面用户端反馈所接收到的音频数据。
6.根据权利要求1或2所述的系统,其特征在于,所述系统还包括视频存储端;
每一服务组件通过指定网络与所述视频存储端相通信,所述指定网络为不同于目标网络的通信网络,所述目标网络为每一服务组件与对应的云桌面服务端相通信所使用的通信网络;
每一服务组件,还用于在向对应的云桌面用户端发送关于对应的云桌面服务端的音视频数据的过程中,将关于对应的云桌面服务端的音视频数据同步发送至所述视频存储端,以进行音视频数据的存储。
7.根据权利要求6所述的系统,其特征在于,每一服务组件还用于在向对应的云桌面用户端发送关于对应的云桌面服务端的音视频数据的过程中,将目标事件信息作为关于对应的云桌面服务端的音视频数据的关联信息,发送至所述视频存储端;
其中,所述目标事件信息包括该服务组件对应的云桌面服务端发生的鼠标事件和键盘事件的事件信息。
8.一种基于云桌面的数据处理方法,其特征在于,应用于云桌面系统中的目标服务组件;所述云桌面系统包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件,所述目标服务组件为目标云桌面服务端对应的服务组件;所述目标云桌面服务端为云桌面系统中的任一云桌面服务端;所述方法包括:
接收目标云桌面服务端发送的屏幕共享指令;其中,所述屏幕共享指令为所述目标云桌面服务端响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的第一调用指令,向所述目标服务组件发送的指令;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,以使得每一云桌面用户端在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息,以及在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流。
9.一种基于云桌面的数据处理装置,其特征在于,应用于云桌面系统中的目标服务组件;所述云桌面系统包括多个云桌面服务端、每一云桌面服务端对应的云桌面用户端和服务组件,以及,流媒体服务端和消息中间件,所述目标服务组件为目标云桌面服务端对应的服务组件;所述目标云桌面服务端为云桌面系统中的任一云桌面服务端;所述装置包括:
接收模块,用于接收目标云桌面服务端发送的屏幕共享指令;其中,所述屏幕共享指令为所述目标云桌面服务端响应于运行在所述目标云桌面服务端的目标软件针对第一应用程序接口的 第一调用指令,向所述目标服务组件发送的指令;所述第一调用指令为运行在所述目标云桌面服务端的目标软件响应于屏幕共享操作,所发送的指令;
发布模块,用于响应于接收到所述屏幕共享指令,将针对所述目标云桌面服务端的屏幕共享消息,发布至所述消息中间件,以及在向所述目标云桌面用户端传输目标数据流的过程中,向所述流媒体服务端同步传输所述目标数据流,以使得每一云桌面用户端在监听到所述消息中间件存储有屏幕共享消息的情况下,从所述消息中间件获取所述屏幕共享消息,以及在基于所述屏幕共享消息判断出该云桌面用户端属于共享接收方的情况下,停止从与该云桌面用户端对应的服务组件获取关于对应的云桌面服务端的音视频数据流,并从所述流媒体服务端中获取所述目标数据流以播放所获取到的目标数据流;
其中,所述目标数据流为关于所述目标云桌面服务端的音视频数据流。
10.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411573204.4A CN119071343B (zh) | 2024-11-05 | 2024-11-05 | 一种云桌面系统、方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411573204.4A CN119071343B (zh) | 2024-11-05 | 2024-11-05 | 一种云桌面系统、方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN119071343A CN119071343A (zh) | 2024-12-03 |
CN119071343B true CN119071343B (zh) | 2025-01-03 |
Family
ID=93632148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411573204.4A Active CN119071343B (zh) | 2024-11-05 | 2024-11-05 | 一种云桌面系统、方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119071343B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114727045A (zh) * | 2020-12-22 | 2022-07-08 | 中兴通讯股份有限公司 | 云桌面共享到会议电视系统的方法、云桌面终端及云桌面 |
CN115328372A (zh) * | 2022-07-30 | 2022-11-11 | 深圳乐播科技有限公司 | 同步显示方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112399257B (zh) * | 2019-08-16 | 2024-03-05 | 中兴通讯股份有限公司 | 云桌面视频播放方法、服务器、终端及存储介质 |
CN116055510A (zh) * | 2023-01-31 | 2023-05-02 | 西安万像电子科技有限公司 | 一种云桌面屏幕共享方法、系统、电子设备及存储介质 |
-
2024
- 2024-11-05 CN CN202411573204.4A patent/CN119071343B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114727045A (zh) * | 2020-12-22 | 2022-07-08 | 中兴通讯股份有限公司 | 云桌面共享到会议电视系统的方法、云桌面终端及云桌面 |
CN115328372A (zh) * | 2022-07-30 | 2022-11-11 | 深圳乐播科技有限公司 | 同步显示方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN119071343A (zh) | 2024-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9699409B1 (en) | Recording web conferences | |
WO2018010682A1 (zh) | 直播方法、直播数据流展示方法和终端 | |
TWI417814B (zh) | 監視系統及其相關控制方法 | |
US9621958B2 (en) | Deferred, on-demand loading of user presence within a real-time collaborative service | |
JP6582100B2 (ja) | 音声サービスを提供するための方法および装置 | |
US20140310741A1 (en) | System for sharing data via cloud server and method thereof | |
CN113209632A (zh) | 一种云游戏的处理方法、装置、设备及存储介质 | |
WO2015096682A1 (zh) | 应用开启方法、装置和系统 | |
CN110177300B (zh) | 程序运行状态的监控方法、装置、电子设备和存储介质 | |
CN113489805B (zh) | 一种云桌面系统的对接方法、装置、设备及存储介质 | |
CN106254951A (zh) | 一种视频直播创建方法及其系统、接入设备、管理设备 | |
CN111880865A (zh) | 多媒体数据推送方法、装置、电子设备及存储介质 | |
CN111818383B (zh) | 视频数据的生成方法、系统、装置、电子设备及存储介质 | |
CN111541905B (zh) | 一种直播方法、装置、计算机设备和存储介质 | |
CN110113298B (zh) | 数据传输方法、装置、信令服务器和计算机可读介质 | |
US11803606B2 (en) | Device augmentation of real time communications | |
EP4184924A1 (en) | Network live broadcast interaction method and device | |
CN119071343B (zh) | 一种云桌面系统、方法、装置、电子设备 | |
CN108076381B (zh) | 视频显示方法、视频转发设备及系统 | |
CN113332710A (zh) | 一种游戏账号登录方法、装置、电子设备及存储介质 | |
CN109818999B (zh) | 数据传输方法和装置 | |
CN114827742B (zh) | 直播互动方法、装置、计算机设备及计算机可读介质 | |
CN119166088B (zh) | 一种应用于电子设备的数据传输系统及数据传输方法 | |
KR20180082672A (ko) | 영상 회의 방청 서비스 제공 방법 및 장치 | |
CN113473068A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |