利用浏览器插件实现VNC中文件拖拽传输的方法及装置制造方法及图纸

技术编号:30320775 阅读:18 留言:0更新日期:2021-10-09 23:39
本发明专利技术公开了一种利用浏览器插件实现VNC中文件拖拽传输的方法,包括:使用noVNC作为客户端,通过在浏览器安装插件,捕获拖拽事件并分解拖拽元素,获取文件信息,读取文件内容;按照扩展的RFB协议格式对文件内容进行数据封装并通过浏览器和VNC代理服务之间的WebSocket连接实现数据的双向传输,即主机文件向虚拟机的拖拽传输,和虚拟机文件向主机的拖拽传输。本发明专利技术方便有效的解决了主机和虚拟机之间文件拖拽双向传输问题,使VNC使用更便捷,功能更丰富;既拥有云计算的成本优势又兼顾虚拟化软件客户端的便捷,本发明专利技术将对云计算、虚拟化控制面板的功能和使用体验带来极大提升。本发明专利技术还提供了相应的利用浏览器插件实现VNC中文件拖拽传输的装置。拖拽传输的装置。拖拽传输的装置。

【技术实现步骤摘要】
利用浏览器插件实现VNC中文件拖拽传输的方法及装置


[0001]本专利技术属于云计算
,更具体地,涉及一种利用浏览器插件实现VNC中文件拖拽传输的方法及装置。

技术介绍

[0002]虚拟网络控制台(Virtual Network Console,简写为VNC)是一款远程控制工具软件。利用远程帧缓冲(Remote Frame Buffer,简写为RFB)协议进行传输,在云计算和虚拟化场景广泛使用。
[0003]传统的虚拟化软件如VMware,VirtualBox等通过在虚拟机中安装Tools(增强工具)结合专用客户端软件可实现主机和虚拟机之间文件拖拽双向传输,文件传输十分便捷。
[0004]noVNC作为HTML5实现的开源VNC客户端,通过浏览器即可访问。因其轻量,便捷被普遍用在各大云计算、虚拟化的控制面板中。但也存在功能单一,无法传输文件的缺陷。
[0005]现有技术中大多为专用的客户端软件结合修改后的桌面协议实现文件传输,被具有客户端软件的厂商锁定,部分需要专用桌面协议,不支持双向传输等限制。此类方法存在安装繁琐,框架过重,资源利用率高等缺陷。在使用noVNC作为控制面板时,想要实现文件传输只能借助WinSCP等支持FTP(File Transfer Protocol,文件传输协议),SFTP(Secret File Transfer Protocol,安全文件传送协议),SCP(Secure Copy,安全复制协议)等文件传输协议的软件且主机和虚拟机之间网络需要互通。
专利
技术实现思路

[0006]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种利用浏览器插件实现VNC中文件拖拽传输的方案,使用轻量便捷的noVNC,实现像虚拟化专用软件客户端一样的文件拖拽双向传输功能,虚拟机和主机间的文件传输将方便快速,VNC易用性极大增强,云计算控制面板使用体验更加友好。
[0007]为实现上述目的,按照本专利技术的一个方面,提供了一种利用浏览器插件实现VNC中文件拖拽传输的方法,包括:
[0008]使用noVNC作为客户端,通过在浏览器安装插件,捕获拖拽事件并分解拖拽元素,获取文件信息,读取文件内容;
[0009]按照扩展的RFB协议格式对文件内容进行数据封装并通过浏览器和VNC代理服务之间的WebSocket连接实现数据的双向传输,即主机文件向虚拟机的拖拽传输,和虚拟机文件向主机的拖拽传输。
[0010]本专利技术的一个实施例中,所述扩展的RFB协议格式,包括:
[0011]消息类型,用来区别其他消息事件;
[0012]传输方向标识,用来区分文件传输方向;
[0013]唯一标识,用来标记数据唯一性,数据分多次发送时,分片和重组避免混淆分片数据;
[0014]分片标识,用来标识收到的分片数据后续是否还有分片数据待接收;
[0015]分片编号,用来记录数据分片在此次传输中的编号;
[0016]文件信息长度,用来定义文件信息的字节长度;
[0017]文件信息,用来传输文件信息;
[0018]文件长度,用来定义文件数据的字节长度;
[0019]文件内容,用来传输文件内容。
[0020]本专利技术的一个实施例中,所述主机文件向虚拟机的拖拽传输,包括:
[0021]按照扩展的RFB协议格式进行数据封装并通过浏览器和VNC代理服务之间的WebSocket连接将数据传输至VNC代理服务,并且在虚拟机中安装代理软件,用来接收VNC代理服务转发到VNC服务的数据,虚拟机代理软件解析数据,完成文件的创建及写入,实现主机文件向虚拟机的拖拽传输。
[0022]本专利技术的一个实施例中,所述主机文件向虚拟机的拖拽传输,具体实现方式为:
[0023]本机发起文件拖拽动作,将文件拖拽至虚拟机noVNC显示范围;
[0024]浏览器插件捕获拖拽动作,获取拖拽元素,进行文件读取;将读取到的文件信息及文件数据按照扩展的RFB协议格式进行封装;
[0025]通过浏览器和VNC代理服务之间的WebSocket连接进行传输;VNC代理服务将收到的数据转发到VNC服务;
[0026]VNC服务接收到数据判断数据类型,将扩展的RFB协议数据保留;
[0027]VNC代理服务通过和浏览器之间的WebSocket连接将VNC服务的数据转发给浏览器;
[0028]在虚拟机中的代理软件获取VNC服务保留的数据后,解析数据得到文件信息,根据文件信息创建文件,写入文件内容,直到文件传输完毕。
[0029]本专利技术的一个实施例中,所述虚拟机文件向主机的拖拽传输,包括:
[0030]利用浏览器插件捕获拖拽事件,通知虚拟机代理软件进行文件读取,按照扩展的RFB协议格式对文件内容进行数据封装并传递给VNC服务,VNC代理服务通过和浏览器之间的WebSocket连接将VNC服务数据转发到浏览器,浏览器插件收到传输的数据后,解析数据,完成文件的创建及写入,实现虚拟机文件向主机的拖拽传输。
[0031]本专利技术的一个实施例中,所述虚拟机文件向主机的拖拽传输,具体实现方式为:
[0032]虚拟机内发起文件拖拽动作,拖拽至noVNC边界;
[0033]浏览器插件检测到拖拽事件,通知虚拟机代理软件;
[0034]虚拟机代理软件收到通知后,获取虚拟机内拖拽文件信息并开始文件读取,将文件信息及文件数据按照扩展的RFB协议格式进行封装,将封装后的数据传递给VNC服务;
[0035]VNC服务判断数据类型,将扩展的RFB协议传输数据至VNC代理服务;
[0036]VNC代理服务通过和浏览器之间的WebSocket连接将VNC服务的数据转发给浏览器;
[0037]浏览器插件解析浏览器收到的数据,按照扩展的RFB协议格式拿到文件信息,根据文件信息创建文件,写入文件内容,直到文件传输完毕。
[0038]本专利技术的一个实施例中,将文件信息及文件数据按照扩展的RFB协议格式进行封装,包括:
[0039]封装数据消息类型,传输方向标识,唯一标识字段,将读取到的文件信息按照定义的顺序填写到文件信息字段,并计算文件信息长度填写到文件信息长度字段,将读取到的文件长度经过计算填写到文件长度字段,将文件内容填写到文件内容字段,如果文件内容过大,则通过控制文件长度和文件内容,计算并填写分片编号和分片标识,实现断点续传,分多次传输数据;
[0040]所述主机文件向虚拟机的拖拽传输,文件传输方向为0,所述虚拟机文件向主机的拖拽传输,文件传输方向为1;或者,所述主机文件向虚拟机的拖拽传输,文件传输方向为1,所述虚拟机文件向主机的拖拽传输,文件传输方向为0。
[0041]按照本专利技术的另一方面,还提供了一种利用浏览器插件实现VNC中文件拖拽传输的装置,包括文件读取模块和文件传输模块,其中:
[0042]所述文件读取模块,用于使用noVNC作为客户端,通过在浏览器安装插件,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,包括:使用noVNC作为客户端,通过在浏览器安装插件,捕获拖拽事件并分解拖拽元素,获取文件信息,读取文件内容;按照扩展的RFB协议格式对文件内容进行数据封装并通过浏览器和VNC代理服务之间的WebSocket连接实现数据的双向传输,即主机文件向虚拟机的拖拽传输,和虚拟机文件向主机的拖拽传输。2.如权利要求1所述的利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,所述扩展的RFB协议格式,包括:消息类型,用来区别其他消息事件;传输方向标识,用来区分文件传输方向;唯一标识,用来标记数据唯一性,数据分多次发送时,分片和重组避免混淆分片数据;分片标识,用来标识收到的分片数据后续是否还有分片数据待接收;分片编号,用来记录数据分片在此次传输中的编号;文件信息长度,用来定义文件信息的字节长度;文件信息,用来传输文件信息;文件长度,用来定义文件数据的字节长度;文件内容,用来传输文件内容。3.如权利要求1或2所述的利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,所述主机文件向虚拟机的拖拽传输,包括:按照扩展的RFB协议格式进行数据封装并通过浏览器和VNC代理服务之间的WebSocket连接将数据传输至VNC代理服务,并且在虚拟机中安装代理软件,用来接收VNC代理服务转发到VNC服务的数据,虚拟机代理软件解析数据,完成文件的创建及写入,实现主机文件向虚拟机的拖拽传输。4.如权利要求3所述的利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,所述主机文件向虚拟机的拖拽传输,具体实现方式为:本机发起文件拖拽动作,将文件拖拽至虚拟机noVNC显示范围;浏览器插件捕获拖拽动作,获取拖拽元素,进行文件读取;将读取到的文件信息及文件数据按照扩展的RFB协议格式进行封装;通过浏览器和VNC代理服务之间的WebSocket连接进行传输;VNC代理服务将收到的数据转发到VNC服务;VNC服务接收到数据判断数据类型,将扩展的RFB协议数据保留;VNC代理服务通过和浏览器之间的WebSocket连接将VNC服务的数据转发给浏览器;在虚拟机中的代理软件获取VNC服务保留的数据后,解析数据得到文件信息,根据文件信息创建文件,写入文件内容,直到文件传输完毕。5.如权利要求1或2所述的利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,所述虚拟机文件向主机的拖拽传输,包括:利用浏览器插件捕获拖拽事件,通知虚拟机代理软件进行文件读取,按照扩展的RFB协议格式对文件内容进行数据封装并传递给VNC服务,VNC代理服务通过和浏览器之间的WebSocket连接将VNC服务数据转发到浏览器,浏览器插件收到传输的数据后,解析数据,完
成文件的创建及写入,实现虚拟机文件向主机的拖拽传输。6.如权利要求5所述的利用浏览器插件实现VNC中文件拖拽传输的方法,其特征在于,所述虚拟机文件向主机的拖拽传输,具体实现方式为:虚拟机内发起文件拖拽动作,拖拽至noVNC边界;浏览器插件检测到拖拽事件,通知虚拟机代理软件;虚拟机代理软件收到通知后,获取虚拟机内拖拽文件信息并开始文件读取,将文件信息及文件数据按照扩展的RFB协...

【专利技术属性】
技术研发人员:黄韬朱家振王昊孙作华吴江
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1