一种在线桌面共享方法、系统与流程

文档序号:12034298阅读:454来源:国知局
一种在线桌面共享方法、系统与流程

本发明涉及网络共享、网络通信协议领域,特别涉及一种在线桌面共享方法、系统。



背景技术:

随着信息技术的快速发展,网络已经成为公司个人间重要的沟通途径,远程协作和互动控制成为彼此之间一个重要的沟通方式,不需要处于同一个环境便可以完成身临其境的交流,可以实现异地的观看和操作。

桌面共享是指,在网络电话和视频会议中是一种重要的应用,它弥补了声音沟通中的不足,提供了更加形象和可视的展示。在网络音视频会议中经常被用于文档展示、操作演示、问题协同解决等,是对音视频、文本消息等交互方式重要且有效的补充。

目前的桌面共享方案中,一种方案采用把桌面压缩为视频流进行传输,这种方案对带宽要求很高,而且桌面数据经过压缩后一般采用udp协议传输,但是udp是不可靠的网络传输协议,很容易发生丢包造成显示花屏,在桌面分标率调节到高分辨率时桌面数据会成倍提高,影响桌面图像的压缩效率造成显示延迟大,清晰度也很难提的很高。

还有一种方案是采用vnc协议进行桌面共享,vnc协议在显示方面是基于一个很简单的原理,即将一个矩形区域的像素点放置在一个特定的位置上,通过采用不同的图像编码方法,可以在传输速度、图像质量、服务器处理速度、终端显示速度和网络带宽之间达到平衡。vnc在共享端采集时,只采集变化的区域的图像,同时在客户端也只更新变化的区域。这种方式在一定程度上节省了系统资源,加快了采集速度。但是这个方案在大规模的桌面共享演示的时候,同样的存在浪费带宽的问题,而且vnc协议采用的是星型直连结构,其在多点远程会议里面实现桌面分享也很困难,而且对分享端和观看端的网络端口也有要求必须是要能互通的才可以建立连接。

此外,现有技术中还提供了一些解决方式,比如中国专利申请,cn201310638861.8,基于vnc的多屏互动方法及装置,检测vncserver桌面的屏幕变化率;如果检测的所述屏幕变化率大于或者等于第一预设值,则逐个检测所述vncserver桌面中各个窗口的窗口变化率;如果存在窗口其窗口变化率大于或者等于第二预设值,则采用h264、jpeg或者mjpeg对该窗口进行编码;其中,所述第二预设值大于所述第一预设值;将编码后的所述窗口发送至vncviewer桌面。缺点在于:同样耗费流量,同时无法满足图像分辨率的要求。又比如,中国专利申请,cn201410033520.2,一种远程桌面共享方法及系统,方法包括:服务器通过互联网接收来自至少两个节点的远程桌面共享请求;根据网络状态在所述至少两个节点中确定虚拟服务器并将所述至少两个节点组网,使网内的节点之间形成点对点的连接;将共享桌面发送给所述虚拟服务器,使所述虚拟服务器通过所述点对点的连接将所述共享桌面分发给所述网内的其它节点。缺点在于:存在多点远程会议里面实现桌面分享也很困难。



技术实现要素:

本发明要解决的技术问题是,实现了可用于音视频会议场景下的一种桌面共享方法,使得用户在观看终端可以浏览流畅的远程的桌面图像,避免了桌面花屏的出现,从而进一步节省网络带宽的同时也提高了显示桌面图像的分辨率。

解决上述技术问题,本发明提供了一种在线桌面共享方法,包括如下的步骤:

在本地安装一浏览器插件,并通过本地桌面的浏览器启动一本地桌面共享服务程序,

通过所述本地桌面共享服务程序,获取连接地址和端口,

根据所述接连地址和端口与一桌面共享服务端程序建立连接,并进行vnc协议的第一次协商;

根据所述桌面共享服务端程序,接收所述本地桌面共享服务程序发送的本地桌面图像数据并更新至本地进行缓存,以及,接收一桌面共享观看端程序的请求;

所述桌面共享观看端程序请求与所述桌面共享服务端程序建立连接,并进行vnc协议的第二次协商;

通过vnc协议将上述本地桌面图像数据更新到观看端的浏览器进行显示。

更进一步,所述vnc协议的第一次协商具体包括:

协商vnc功能支持的版本号,

进行密码验证,验证所述本地桌面共享服务程序的密码是否正确,

设置所述本地桌面共享服务程序的桌面参数,

设置所述桌面共享服务端程序的本地桌面名称,

协商所述桌面共享服务端程序和所述本地桌面共享服务程序通信的编码格式,

协商成功后通过vnc协议把本地桌面图像数据更新到桌面参数中指定的共享桌面会议号。

更进一步,所述vnc协议的第二次协商具体包括:

协商vnc功能支持的版本号,

进行密码验证,验证所述桌面共享观看端程序的密码是否正确,

向所述本地桌面共享服务程序请求桌面参数,

在所述桌面共享服务端程序接收本地桌面名称,

协商双方数据收发的编码格式,

协商成功后通过vnc协议接收所述本地桌面共享服务程序发送的本地桌面图像数据更新到本地缓存。

更进一步,所述浏览器为:chrome浏览器。

更进一步,启动一本地桌面共享服务程序后,同时把所述桌面共享服务端程序的ip地址、端口号和/或共享桌面会议号传递给所述本地桌面共享服务程序。

更进一步,所述本地桌面共享服务程序根据所述chrome浏览器上的chrome浏览器扩展插件启动运行,并与所述chrome浏览器扩展插件之间以自定义的json消息格式进行通信。

基于上述,本发明还提供了一种在线桌面共享系统,包括:本地桌面共享服务程序单元、桌面共享服务端程序单元、桌面共享观看端程序单元,

所述本地桌面共享服务程序单元,用以通过安装在本地的一浏览器插件,启动一本地桌面共享服务程序,然后通过所述本地桌面共享服务程序,获取连接地址和端口;

所述桌面共享服务端程序单元,用以根据所述接连地址和端口与一桌面共享服务端程序建立连接,并进行vnc协议的第一次协商;还用以根据所述桌面共享服务端程序,接收所述本地桌面共享服务程序发送的本地桌面图像数据并更新至本地进行缓存,以及,接收一桌面共享观看端程序的请求;

所述桌面共享观看端程序单元,用以与向所述桌面共享服务端程序请求建立连接,并进行vnc协议的第二次协商,通过vnc协议将上述本地桌面图像数据更新到观看端的浏览器进行显示。

更进一步,所述桌面共享服务端程序单元包括:vnc服务端模块和vnc客户端模块,

所述vnc客户端模块,用以处理所述本地桌面共享服务程序单元的连接请求消息,

所述vnc服务端模块,用以处理所述桌面共享观看端程序单元的观看请求消息。

更进一步,所述vnc客户端模块还用以,

监听在本地端口接收的所述本地桌面共享服务程序单元的连接请求,

若接收到新的连接请求就从请求消息中读取共享桌面会议号,

进行vnc协议协商,若进行vnc协议协商后成功,则开始接收来自所述本地桌面共享服务程序单元的桌面图像更新数据,并把接收到的更新数据通过共享桌面会议号更新到对应的共享桌面对象,

通过所述共享桌面对象把接收到的桌面图像数据和所述vnc客户端模块缓存的桌面图像数据进行比较后向共享桌面观看端对象更新桌面数据的变化后的图像。

更进一步,所述vnc服务端模块还用以,

监听在本地端口接收所述桌面共享观看端程序单元的连接请求消息,

当接收到新的连接请求消息时,则创建一个共享桌面观看端对象,

从请求消息中读取共享桌面会议号,并根据共享桌面会议号从桌面共享数据哈希列表中查询共享桌面对象,

如果未查询到共享桌面对象则创建新一共享桌面对象,并将该共享桌面对象和桌面共享观看端对象进行关联、绑定。

通过本申请中的在线桌面共享系统,可满足需要方案讲解、文档演示或者操作展示等场景,能极大的提高工作者的工作效率和便利性。

本发明的有益效果:

本发明中的在线桌面共享方法,支持高桌面分辨率,对网络带宽占用低,系统接入快,查看桌面延迟小,操作简单,运行稳定,断开自动重连等特点。

采用本发明中的方法,能够支持跨平台化的安装部署,可以在大部分操作系统,包括但不限于windows、macos、linux等系统上进行安装部署使用。

本发明中的在线桌面共享系统中分享者只需在本地操作chrome浏览器即可进行桌面分享,通过chrome浏览器插件会自动下载安装本地桌面共享程序,然后通过本地桌面共享程序即可向音视频会议中的其他成员分享自己的桌面共享操作,并进行远程演示。此外,在桌面分享观看端不需要额外安装其他软件只需通过浏览器即可加入桌面分享演示,桌面分享观看端的浏览器不需要安装插件并支持大部分的浏览器。

附图说明

图1是本发明一实施例中的方法流程示意图;

图2是本发明一实施例中的vnc交互流程示意图;

图3是本发明另一实施例中的vnc交互流程示意图;

图4是本发明一实施例中的系统结构示意图;

图5是本发明一实施例中的各个模块间的结构拓扑图;

图6是本发明一实施例中的本地桌面共享服务程序启动示意图;

图7是本发明一实施例中的程序交互示意图。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。

图1是本发明一实施例中的方法流程示意图,包括如下的步骤:

步骤s1在本地安装一浏览器插件,并通过本地桌面的浏览器启动一本地桌面共享服务程序,以chrome浏览器为例,在桌面共享者需要通过chrome浏览器进行桌面分享操作,chrome浏览器提供了系统间通信的机制,通过安装本申请中开发的桌面共享chrome浏览器插件就可以通过浏览器和操作系统进行简单通信。成功安装chrome浏览器插件后通过chrome浏览器启动本地桌面共享服务程序,同时把桌面共享服务端程序的ip地址、端口号和共享桌面会议号传递给本地桌面共享服务程序。

在一些实施例中,桌面共享者通过chrome浏览器进行桌面分享操作,并且需要安装对应开发的桌面分享chrome浏览器插件。

在一些实施例中,本地桌面共享服务程序和chrome浏览器之间的通信采用自定义协议,协议内容包括保持连接的心跳消息,连接本地桌面共享服务程序消息,桌面共享服务端程序地址端口设置消息,开始屏幕共享请求消息,结束屏幕共享请求消息,断开本地桌面共享服务程序消息。

在一些实施例中,上述自定义协议采用json编码格式。

步骤s2通过所述本地桌面共享服务程序,获取连接地址和端口,

步骤s3根据所述接连地址和端口与一桌面共享服务端程序建立连接,并进行vnc协议的第一次协商;本地桌面共享服务程序由chrome浏览器通过安装的chrome扩展插件启动运行,和chrome浏览器扩展插件之间以自定义的json消息格式通信,json消息中包含:桌面共享服务端程序的地址和端口,成功和桌面共享服务端程序建立连接后,开始和桌面共享服务端程序进行vnc协议的协商:

第一步协商vnc功能支持的版本号,

第二步进行密码验证,验证本地桌面共享服务程序的密码是否正确,

第三步向桌面共享服务程序设置桌面参数,

第四步向桌面共享服务端程序设置本地桌面名称,

第五步协商双方数据收发的编码格式。

协商成功后通过vnc协议把本地桌面图像数据更新到参数中指定的共享桌面会议号。

在一些实施例中,vnc(|virtualnetworkcomputer)是虚拟网络计算机的缩写,是有at&t的欧洲研究实验室开发的远程控制工具软件。vnc协议消息分为非桌面数据消息和桌面数据消息。

在一些实施例中,本地桌面共享服务程序基于开源的vncserver扩展开发。vncserver是一个采用vnc协议为了满足分布式用户共享服务器上面的资源,而在服务器上开启的一项服务。

在一些实施例中,windows平台上的本地桌面共享服务程序基于ultravncserver进行扩展开发,macos平台上的本地桌面共享服务程序基于osxvnc-server进行扩展开发。

步骤s4根据所述桌面共享服务端程序,接收所述本地桌面共享服务程序发送的本地桌面图像数据并更新至本地进行缓存,以及,接收一桌面共享观看端程序的请求;桌面共享观看端程序连接桌面共享服务端程序里面的vnc服务端模块,访问请求相应的共享桌面会议号的桌面图像数据,成功和桌面共享服务端程序建立连接后,开始和桌面共享服务端程序进行vnc协议的协商:

第一步协商vnc功能支持的版本号,

第二步进行密码验证,验证桌面共享观看端程序的密码是否正确,

第三步向桌面共享服务程序请求桌面参数,

第四步向桌面共享服务端程序接收本地桌面名称,

第五步协商双方数据收发的编码格式。协商成功后通过vnc协议把本地桌面图像数据更新到浏览器显示。

步骤s5所述桌面共享观看端程序请求与所述桌面共享服务端程序建立连接,并进行vnc协议的第二次协商;在桌面共享服务端程序包括主要功能模块:vnc服务端和vnc客户端。

其中,vnc客户端处理来自本地桌面共享服务程序的连接请求消息,从请求消息中取出桌面共享的会议号,如果请求的共享桌面会议号尚未创建则创建出来,接下来和本地桌面共享服务程序进行vnc协议的协商:

第一步协商vnc功能支持的版本号,

第二步进行密码验证,验证本地桌面共享服务程序的密码是否正确,

第三步协商本地桌面共享服务程序的桌面参数,

第四步接收本地桌面共享服务程序设置的本地桌面名称,

第五步协商双方数据收发的编码格式。

协商成功后通过vnc协议接收本地桌面共享服务程序发送的本地桌面图像数据更新到本地缓存。vnc服务端处理来自桌面共享观看端程序的请求消息。

本地桌面共享服务程序”和“桌面共享服务端程序”之间的连接支持自动重连功能。

在一些实施例中,桌面共享服务端程序同时支持本地桌面共享服务程序和桌面共享观看端程序的连接请求和数据处理。

在一些实施例中,所述桌面共享服务端程序对所述本地桌面共享服务程序和所述桌面共享观看端程序的连接请求顺序没有先后要求。

在一些实施例中,如果所述本地桌面共享服务程序先连接进来,首先进行非桌面数据的协商,并请求缓存处理所述本地桌面共享服务程序一帧最新的桌面共享图像。

在一些实施例中,如果所述桌面共享观看端程序先连接进来,首先进行非桌面数据的协商,等待有所述本地桌面共享服务程序连接上来之后再请求刷新桌面图像数据。

在一些实施例中,所述桌面共享服务端程序以所述桌面共享观看端程序的角色缓存同步所述本地桌面共享服务程序发送的桌面图像数据,并以所述本地桌面共享服务程序的角色向同一个共享桌面会议号的所述桌面共享观看端程序更新桌面变化数据。虽然所述桌面共享观看端程序连接的顺序和时间有先后但是并不会因此而增加桌面数据的转发数据量和带宽占用。

在一些实施例中,所述桌面共享服务端程序在服务端建立以共享桌面会议号为关键值的哈希表,哈希表的值保存对应的共享桌面对象。

在一些实施例中,所述桌面共享服务端程序使用开源的vnc协议库libvncserver/libvncclient,libvncserver/libvncclient是开源的跨平台的c语言库,可以方便的实现支持vnc协议的服务端和客户端程序。

在一些实施例中,桌面共享服务端程序的实现过程,vnc服务端程序的实现过程:首先监听本地端口接收“桌面共享观看端程序”的连接请求,当接收到新的连接请求则创建一个共享桌面观看端对象,从请求消息中读取共享桌面会议号,根据共享桌面会议号从桌面共享数据哈希列表查询共享桌面对象,如果未查询到共享桌面对象则创建新的共享桌面对象,并将共享桌面对象和桌面共享观看端对象进行关联绑定。

在一些实施例中,所述vnc客户端程序的实现过程:首先监听本地端口接收“本地桌面共享服务程序”的连接请求,当接收到新的请求就从请求消息中读取共享桌面会议号,然后进行vnc协议的协商,成功进行vnc协议协商后,开始接收来自“本地桌面共享服务程序”的桌面图像更新数据,并把接收到的数据通过共享桌面会议号更新到共享桌面对象,共享桌面对象把接收到的桌面图像数据和自己缓存的桌面图像数据进行比较后向共享桌面观看端对象更新桌面数据的变化。

步骤s6通过vnc协议将上述本地桌面图像数据更新到观看端的浏览器进行显示。

通过本实施例中的桌面共享观看端程序,连接所述桌面共享服务端程序,接收所述本地桌面共享服务程序发送上来的桌面图像数据。在本地桌面共享服务程序,根据从本地桌面共享服务端的浏览器插件中接收到的参数连接所述桌面共享服务端程序,采集桌面共享端的桌面图像并通过vnc协议编码发送到桌面共享服务端程序上的相应的会议室(即共享桌面会议号)。本地桌面共享服务端的浏览器插件,在需要共享本地桌面图像数据时检测本地桌面共享服务程序,并启动本地桌面共享服务程序和传递音视频会议的参数给本地桌面共享服务程序。桌面共享服务端程序,接收本地桌面共享服务程序上传的桌面图像数据,并将桌面图像数据转发给同会议室的桌面共享观看端程序,从而实现在线桌面共享,且包括但不限于windows、macos、linux等系统上进行安装部署使用。

作为本实施例中的优选,如图2所示是本发明一实施例中的vnc交互流程示意图,所述vnc协议的第一次协商具体包括:

步骤s21协商vnc功能支持的版本号,

步骤s22进行密码验证,验证所述本地桌面共享服务程序的密码是否正确,

步骤s23设置所述本地桌面共享服务程序的桌面参数,

步骤s24设置所述桌面共享服务端程序的本地桌面名称,

步骤s25协商所述桌面共享服务端程序和所述本地桌面共享服务程序通信的编码格式,

步骤s26协商成功后通过vnc协议把本地桌面图像数据更新到桌面参数中指定的共享桌面会议号。

具体地,成功和桌面共享服务端程序建立连接后,开始和桌面共享服务端程序进行vnc协议的协商,第一步协商vnc功能支持的版本号,第二步进行密码验证,验证本地桌面共享服务程序的密码是否正确,第三步向桌面共享服务程序设置桌面参数,第四步向桌面共享服务端程序设置本地桌面名称,第五步协商双方数据收发的编码格式。协商成功后通过vnc协议把本地桌面图像数据更新到参数中指定的共享桌面会议号。

作为本实施例中的优选,如图3所示是本发明另一实施例中的vnc交互流程示意图,所述vnc协议的第二次协商具体包括:

步骤s31协商vnc功能支持的版本号,

步骤s32进行密码验证,验证所述桌面共享观看端程序的密码是否正确,

步骤s33向所述本地桌面共享服务程序请求桌面参数,

步骤s34在所述桌面共享服务端程序接收本地桌面名称,

步骤s35协商双方数据收发的编码格式,

步骤s36协商成功后通过vnc协议接收所述本地桌面共享服务程序发送的本地桌面图像数据更新到本地缓存。

请参考图4是本发明一实施例中的系统结构示意图,本实施例中的一种在线桌面共享系统,包括:本地桌面共享服务程序单元1、桌面共享服务端程序单元2、桌面共享观看端程序单元3,所述本地桌面共享服务程序单元1,用以通过安装在本地的一浏览器插件,启动一本地桌面共享服务程序,然后通过所述本地桌面共享服务程序,获取连接地址和端口;所述桌面共享服务端程序单元2,用以根据所述接连地址和端口与一桌面共享服务端程序建立连接,并进行vnc协议的第一次协商;还用以根据所述桌面共享服务端程序,接收所述本地桌面共享服务程序发送的本地桌面图像数据并更新至本地进行缓存,以及,接收一桌面共享观看端程序的请求;所述桌面共享观看端程序单元3,用以与向所述桌面共享服务端程序请求建立连接,并进行vnc协议的第二次协商,通过vnc协议将上述本地桌面图像数据更新到观看端的浏览器进行显示。

如图4所示,作为本实施例中的优选,所述桌面共享服务端程序单元2包括:vnc服务端模块21和vnc客户端模块22,

所述vnc客户端模块,用以处理所述本地桌面共享服务程序单元的连接请求消息,

所述vnc服务端模块,用以处理所述桌面共享观看端程序单元的观看请求消息。

作为本实施例中的优选,所述vnc客户端模块21还用以,

监听在本地端口接收的所述本地桌面共享服务程序单元的连接请求,

若接收到新的连接请求就从请求消息中读取共享桌面会议号,

进行vnc协议协商,若进行vnc协议协商后成功,则开始接收来自所述本地桌面共享服务程序单元的桌面图像更新数据,并把接收到的更新数据通过共享桌面会议号更新到对应的共享桌面对象,

通过所述共享桌面对象把接收到的桌面图像数据和所述vnc客户端模块缓存的桌面图像数据进行比较后向共享桌面观看端对象更新桌面数据的变化后的图像。

如图4所示,作为本实施例中的优选,所述vnc服务端模块22还用以,

监听在本地端口接收所述桌面共享观看端程序单元的连接请求消息,

当接收到新的连接请求消息时,则创建一个共享桌面观看端对象,

从请求消息中读取共享桌面会议号,并根据共享桌面会议号从桌面共享数据哈希列表中查询共享桌面对象,

如果未查询到共享桌面对象则创建新一共享桌面对象,并将该共享桌面对象和桌面共享观看端对象进行关联、绑定。

以下对本实施例中在线桌面共享系统的实现流程进行详述,请参考图5-图7。

在所述本地桌面共享服务程序单元1中,桌面共享者需要通过chrome浏览器进行桌面分享操作。chrome浏览器提供了系统间通信的机制,通过安装我们开发的桌面共享chrome浏览器插件就可以通过浏览器和操作系统进行简单通信。成功安装chrome浏览器插件后通过chrome浏览器启动本地桌面共享服务程序,同时把桌面共享服务端程序的ip地址、端口号和共享桌面会议号传递给本地桌面共享服务程序。桌面共享者通过chrome浏览器进行桌面分享操作,并且需要安装对应开发的桌面分享chrome浏览器插件。

在所述桌面共享服务端程序单元2中,本地桌面共享服务程序由chrome浏览器通过安装的chrome扩展插件启动运行,和chrome浏览器扩展插件之间以自定义的json消息格式通信,json消息中包含桌面共享服务端程序的地址和端口,成功和桌面共享服务端程序建立连接后,开始和桌面共享服务端程序进行vnc协议的协商,第一步协商vnc功能支持的版本号,第二步进行密码验证,验证本地桌面共享服务程序的密码是否正确,第三步“桌面共享服务程序设置桌面参数,第四步向桌面共享服务端程序设置本地桌面名称,第五步协商双方数据收发的编码格式。协商成功后通过vnc协议把本地桌面图像数据更新到参数中指定的共享桌面会议号。vnc(|virtualnetworkcomputer)是虚拟网络计算机的缩写,是有at&t的欧洲研究实验室开发的远程控制工具软件。vnc协议消息分为非桌面数据消息和桌面数据消息。

在所述桌面共享服务端程序单元2中,其中所述桌面共享服务端程序包括主要功能模块:vnc服务端模块21和vnc客户端模块22。

所述vnc服务端模块21处理来自本地桌面共享服务程序的连接请求消息,从请求消息中取出桌面共享的会议号,如果请求的共享桌面会议号尚未创建则创建出来,接下来和本地桌面共享服务程序进行vnc协议的协商,第一步协商vnc功能支持的版本号,第二步进行密码验证,验证本地桌面共享服务程序的密码是否正确,第三步协商本地桌面共享服务程序的桌面参数,第四步接收本地桌面共享服务程序设置的本地桌面名称,第五步协商双方数据收发的编码格式。协商成功后通过vnc协议接收本地桌面共享服务程序发送的本地桌面图像数据更新到本地缓存。所述vnc客户端模块22处理来自桌面共享观看端程的请求消息。

在所述桌面共享观看端程序单元3中,通过一桌面共享观看端程序连接桌面共享服务端程序里面的vnc服务端模块,访问请求相应的共享桌面会议号的桌面图像数据,成功和桌面共享服务端程序建立连接后,开始和桌面共享服务端程序进行vnc协议的协商,第一步协商vnc功能支持的版本号,第二步进行密码验证,验证桌面共享观看端程序的密码是否正确,第三步向桌面共享服务程序请求桌面参数,第四步向桌面共享服务端程序接收本地桌面名称,第五步协商双方数据收发的编码格式。协商成功后通过vnc协议把本地桌面图像数据更新到浏览器显示。

在一些实施例中,一本地桌面共享服务程序基于开源的vncserver扩展开发。vncserver是一个采用vnc协议为了满足分布式用户共享服务器上面的资源,而在服务器上开启的一项服务。

在一些实施例中,windows平台上的一本地桌面共享服务程序基于ultravncserver进行扩展开发,macos平台上的一本地桌面共享服务程序基于osxvnc-server进行扩展开发。

在一些实施例中,上述本地桌面共享服务程序和chrome浏览器之间的通信采用自定义协议,协议内容包括保持连接的心跳消息,连接本地桌面共享服务程序消息,桌面共享服务端程序地址端口设置消息,开始屏幕共享请求消息,结束屏幕共享请求消息,断开本地桌面共享服务程序消息。优选地,自定义协议采用json编码格式。

在一些实施例中,上述本地桌面共享服务程序和上述桌面共享服务端程序之间的连接支持自动重连功能。

在一些实施例中,上述桌面共享服务端程序同时支持本地桌面共享服务程序和桌面共享观看端程序的连接请求和数据处理。

在一些实施例中,桌面共享服务端程序对本地桌面共享服务程序和桌面共享观看端程序的连接请求顺序没有先后要求。

如果本地桌面共享服务程序先连接进来,首先进行非桌面数据的协商,并请求缓存处理本地桌面共享服务程序一帧最新的桌面共享图像。

如果桌面共享观看端程序先连接进来,首先进行非桌面数据的协商,等待有本地桌面共享服务程序连接上来之后再请求刷新桌面图像数据。桌面共享服务端程序以桌面共享观看端程序的角色缓存同步本地桌面共享服务程序”送的桌面图像数据,并以本地桌面共享服务程序的角色向同一个共享桌面会议号的桌面共享观看端程序更新桌面变化数据。

在一些实施例中,桌面共享服务端程序在服务端建立以共享桌面会议号为关键值的哈希表,哈希表的值保存对应的共享桌面对象。

在一些实施例中,桌面共享服务端程序使用开源的vnc协议库libvncserver/libvncclient,libvncserver/libvncclient是开源的跨平台的c语言库,可以方便的实现支持vnc协议的服务端和客户端程序。

在一些实施例中,vnc服务端模块21还用以,首先监听本地端口接收“桌面共享观看端程序”的连接请求,当接收到新的连接请求则创建一个共享桌面观看端对象,从请求消息中读取共享桌面会议号,根据共享桌面会议号从桌面共享数据哈希列表查询共享桌面对象,如果未查询到共享桌面对象则创建新的共享桌面对象,并将共享桌面对象和桌面共享观看端对象进行关联绑定。

在一些实施例中,vnc客户端模块22还用以,首先监听本地端口接收“本地桌面共享服务程序”的连接请求,当接收到新的请求就从请求消息中读取共享桌面会议号,然后进行vnc协议的协商,成功进行vnc协议协商后,开始接收来自“本地桌面共享服务程序”的桌面图像更新数据,并把接收到的数据通过共享桌面会议号更新到共享桌面对象,共享桌面对象把接收到的桌面图像数据和自己缓存的桌面图像数据进行比较后向共享桌面观看端对象更新桌面数据的变化。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。

此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。

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