CN103458034A - 一种通过web页面访问spice协议远程桌面的方法 - Google Patents

一种通过web页面访问spice协议远程桌面的方法 Download PDF

Info

Publication number
CN103458034A
CN103458034A CN2013103980473A CN201310398047A CN103458034A CN 103458034 A CN103458034 A CN 103458034A CN 2013103980473 A CN2013103980473 A CN 2013103980473A CN 201310398047 A CN201310398047 A CN 201310398047A CN 103458034 A CN103458034 A CN 103458034A
Authority
CN
China
Prior art keywords
websocket
spice
server
web page
request
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.)
Granted
Application number
CN2013103980473A
Other languages
English (en)
Other versions
CN103458034B (zh
Inventor
莫展鹏
杨松
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201310398047.3A priority Critical patent/CN103458034B/zh
Publication of CN103458034A publication Critical patent/CN103458034A/zh
Application granted granted Critical
Publication of CN103458034B publication Critical patent/CN103458034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及云计算技术领域,特别是指一种通过WEB页面访问SPICE协议远程桌面的方法。本发明首先在宿主机上安装一个WebSocket的代理服务器,用于转发SPICE远程桌面的连接请求和发送SPICE服务器的协议数据;WEB页面向WEB服务器请求SPICE服务器的地址和SPICE桌面的端口,响应以后,根据SPICE服务的地址,向WebSocket代理服务器发出建立WebSocket连接的请求;最后WEB页面将使用WebSocket连接发送SPICE协议的命令,并从SPICE服务器接收协议数据。本发明的方法兼容性强、无需安装附加插件、连接行为易于控制;可用于开发虚拟机基于WEB的管理系统。

Description

一种通过WEB页面访问SPICE协议远程桌面的方法
技术领域
本发明涉及云计算技术领域,特别是指一种通过WEB页面访问SPICE协议远程桌面的方法。 
背景技术
SPICE作为新兴的远程桌面协议,在远程设备映射、多媒体播放具有优势。在云操作系统的管理中,常常使用WEB作为管理的工具,管理员希望所有操作都能在WEB页面上进行。WEB页面访问SPICE协议远程桌面当前有两种实现方式。第一种是采用流的方式,这种方式通常就是在WEB页面使用一个隐藏的窗口向SPICE服务发出一个长连接的请求。SPICE服务器接到这个请求后作出回应并不断更新连接状态以保证WEB页面和SPICE服务器的连接不过期。通过这种机制可以将SPICE的桌面图像源源不断地推向WEB页面。这种机制在用户的体验上有一点问题,需要针对不同的浏览器设计不同的方案来改进用户体验,同时这种机制在并发比较大的情况下,对服务器端的资源是一个极大的考验。第二种是采用Flash或Sliverlight插件直接与SPICE通信,这种通信脱离了原来的WEB服务器,WEB服务器无法控制插件的行为,会给客户端带来安全威胁。 
发明内容
本发明解决的技术问题在于提供一种通过WEB页面访问SPICE协议远程桌面的方法,解决目前SPICE的WEB客户端所存在的兼容性不好、性能差、连 接行为难以控制等问题。 
本发明解决上述技术问题的技术方案是: 
包括如下步骤: 
步骤1:在宿主机上安装一个WebSocket的代理服务器,用于转发SPICE远程桌面的连接请求,以及发送SPICE服务器的协议数据; 
步骤2:WEB页面向WEB服务器请求SPICE服务器的地址和SPICE桌面的端口; 
步骤3:WEB页面收到WEB服务器的响应以后,根据SPICE服务器的地址,向WebSocket代理服务器发出建立WebSocket连接的请求; 
步骤4:WEB页面使用WebSocket连接发送SPICE协议的命令并从SPICE服务器接收协议数据。 
所述的SPICE远程桌面的连接请求是指一个URL,由SPICE服务器地址和端口组成,表示为“ws://somehost:port/?password=pwd&fullscreen=true”的模式; 
其中somhost表示SPICE服务器地址,port表示端口,password表示用户名,fullscreen表示是否远程桌面显示全屏。 
所述的向WebSocket代理服务器发出建立WebSocket连接当前请求过程使用Javascript完成;具体步骤如下: 
步骤1:WEB浏览器首先发起一个对WebSocket代理服务器的HTTP连接请求。请求头信息里包含有服务器的IP和端口、以及”Sec-WebSocket-Key1”、“Sec-WebSocket-Key2”和”[8-byte securitykey]”这样的头信息; 
步骤2:WebSocket代理服务器解析这些头信息,并在握手的过程中依据这些信息生成一个16位的安全密钥并返回给WEB浏览器,以表明WebSocket代 理服务器获取了WEB浏览器的请求,同意创建WebSocket连接;一旦连接建立,WEB浏览器和WebSocket代理服务器则可通过这个通道双向传输数据。 
所述的安全密钥生成包括如下步骤: 
步骤1:逐个字符读取Sec-WebSocket-Key1头信息中的值,将数值型字符连接到一起放到一个临时字符串里,同时统计所有空格的数量; 
步骤2:将在步骤1里生成的数字字符串转换成一个整型数字,然后除以步骤1里统计出来的空格数量,将得到的浮点数转换成整数型; 
步骤3:将步骤2里生成的整型值转换为符合网络传输的网络字节数组; 
步骤4:对Sec-WebSocket-Key2头信息同样进行步骤1到步骤3的操作,得到另外一个网络字节数组; 
步骤5:将[8-byte security key]和在步骤3、步骤4里生成的网络字节数组合并成一个16字节的数组; 
步骤6:对步骤5生成的字节数组使用MD5算法生成一个16位的哈希值,这个哈希值作为安全密钥返回给客户端,以表明WebSocket代理服务器获取了WEB浏览器的请求,同意创建WebSocket连接。 
采用本发明的方法,不受浏览器的限制,解决了目前SPICE的WEB客户端所存在的兼容性不好、用户体验差的问题。而且,对于整个过程可控,确保了客户端的安全。 
附图说明
下面结合附图对本发明进一步说明: 
图1为本发明方法流程图; 
图2为本发明具体实施例示意图。 
具体实施方式
如图所示,本发明的方法包括如下步骤: 
步骤1:在宿主机上安装一个WebSocket的代理服务器,用于转发SPICE远程桌面的连接请求,以及发送SPICE服务器的协议数据; 
步骤2:WEB页面向WEB服务器请求SPICE服务器的地址和SPICE桌面的端口; 
步骤3:WEB页面收到WEB服务器的响应以后,根据SPICE服务器的地址,向WebSocket代理服务器发出建立WebSocket连接的请求; 
步骤4:WEB页面使用WebSocket连接发送SPICE协议的命令并从SPICE服务器接收协议数据。 
前述SPICE远程桌面的连接请求是指一个URL,由SPICE服务器地址和端口组成,表示为“ws://somehost:port/?password=pwd&fullscreen=true”的模式; 
其中somhost表示SPICE服务器地址,port表示端口,password表示用户名,fullscreen表示是否远程桌面显示全屏。 
向WebSocket代理服务器发出建立WebSocket连接当前请求过程使用Javascript完成;具体步骤如下: 
步骤1:WEB浏览器首先发起一个对WebSocket代理服务器的HTTP连接请求。请求头信息里包含有服务器的IP和端口、以及”Sec-WebSocket-Key1”、“Sec-WebSocket-Key2”和”[8-byte securitykey]”这样的头信息; 
步骤2:WebSocket代理服务器解析这些头信息,并在握手的过程中依据这些信息生成一个16位的安全密钥并返回给WEB浏览器,以表明WebSocket代理服务器获取了WEB浏览器的请求,同意创建WebSocket连接;一旦连接建 立,WEB浏览器和WebSocket代理服务器则可通过这个通道双向传输数据。 
安全密钥生成包括如下步骤: 
步骤1:逐个字符读取Sec-WebSocket-Key1头信息中的值,将数值型字符连接到一起放到一个临时字符串里,同时统计所有空格的数量; 
步骤2:将在步骤1里生成的数字字符串转换成一个整型数字,然后除以步骤1里统计出来的空格数量,将得到的浮点数转换成整数型; 
步骤3:将步骤2里生成的整型值转换为符合网络传输的网络字节数组; 
步骤4:对Sec-WebSocket-Key2头信息同样进行步骤1到步骤3的操作,得到另外一个网络字节数组; 
步骤5:将[8-byte security key]和在步骤3、步骤4里生成的网络字节数组合并成一个16字节的数组; 
步骤6:对步骤5生成的字节数组使用MD5算法生成一个16位的哈希值,这个哈希值作为安全密钥返回给客户端,以表明WebSocket代理服务器获取了WEB浏览器的请求,同意创建WebSocket连接。 
如图2所示,是本发明的具体实施例。本发明使用websockify作为WebSocket代理服务器,用于转发SPICE远程桌面的连接请求,以及发送SPICE服务器的协议数据。 
首先,浏览器使用Javascript向WEB服务器请求SPICE服务器的地址和端口,并向websockifiy发起连接: 
Figure BDA00003771641000051
Figure BDA00003771641000061
Figure BDA00003771641000071
在websockify端,根据浏览器的请求信息,建立连接: 
Figure BDA00003771641000072
Figure BDA00003771641000081
WEB页面使用Javascript接收数据并处理数据: 
Figure BDA00003771641000082
Figure 20131039804731000021

Claims (4)

1.一种通过WEB页面访问SPICE协议远程桌面的方法,其特征在于:包括如下步骤:
步骤1:在宿主机上安装一个WebSocket的代理服务器,用于转发SPICE远程桌面的连接请求,以及发送SPICE服务器的协议数据;
步骤2:WEB页面向WEB服务器请求SPICE服务器的地址和SPICE桌面的端口;
步骤3:WEB页面收到WEB服务器的响应以后,根据SPICE服务器的地址,向WebSocket代理服务器发出建立WebSocket连接的请求;
步骤4:WEB页面使用WebSocket连接发送SPICE协议的命令并从SPICE服务器接收协议数据。
2.根据权利要求1所述的通过WEB页面访问SPICE协议远程桌面的方法,其特征在于:
所述的SPICE远程桌面的连接请求是指一个URL,由SPICE服务器地址和端口组成,表示为“ws://somehost:port/?password=pwd&fullscreen=true”的模式;
其中somhost表示SPICE服务器地址,port表示端口,password表示用户名,fullscreen表示是否远程桌面显示全屏。
3.根据权利要求1或2所述的通过WEB页面访问SPICE协议远程桌面的方法,其特征在于:所述的向WebSocket代理服务器发出建立WebSocket连接当前请求过程使用Javascript完成;具体步骤如下:
步骤1:WEB浏览器首先发起一个对WebSocket代理服务器的HTTP连接请求。请求头信息里包含有服务器的IP和端口、以及”Sec-WebSocket-Key1”、“Sec-WebSocket-Key2”和”[8-byte securitykey]”这样的头信息;
步骤2:WebSocket代理服务器解析这些头信息,并在握手的过程中依据这些信息生成一个16位的安全密钥并返回给WEB浏览器,以表明WebSocket代理服务器获取了WEB浏览器的请求,同意创建WebSocket连接;一旦连接建立,WEB浏览器和WebSocket代理服务器则可通过这个通道双向传输数据。
4.根据权利要求3所述的通过WEB页面访问SPICE协议远程桌面的方法,其特征在于:所述的安全密钥生成包括如下步骤:
步骤1:逐个字符读取Sec-WebSocket-Key1头信息中的值,将数值型字符连接到一起放到一个临时字符串里,同时统计所有空格的数量;
步骤2:将在步骤1里生成的数字字符串转换成一个整型数字,然后除以步骤1里统计出来的空格数量,将得到的浮点数转换成整数型;
步骤3:将步骤2里生成的整型值转换为符合网络传输的网络字节数组;
步骤4:对Sec-WebSocket-Key2头信息同样进行步骤1到步骤3的操作,得到另外一个网络字节数组;
步骤5:将[8-byte security key]和在步骤3、步骤4里生成的网络字节数组合并成一个16字节的数组;
步骤6:对步骤5生成的字节数组使用MD5算法生成一个16位的哈希值,这个哈希值作为安全密钥返回给客户端,以表明WebSocket代理服务器获取了WEB浏览器的请求,同意创建WebSocket连接。
CN201310398047.3A 2013-09-04 2013-09-04 一种通过web页面访问spice协议远程桌面的方法 Active CN103458034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310398047.3A CN103458034B (zh) 2013-09-04 2013-09-04 一种通过web页面访问spice协议远程桌面的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310398047.3A CN103458034B (zh) 2013-09-04 2013-09-04 一种通过web页面访问spice协议远程桌面的方法

Publications (2)

Publication Number Publication Date
CN103458034A true CN103458034A (zh) 2013-12-18
CN103458034B CN103458034B (zh) 2017-10-10

Family

ID=49739976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310398047.3A Active CN103458034B (zh) 2013-09-04 2013-09-04 一种通过web页面访问spice协议远程桌面的方法

Country Status (1)

Country Link
CN (1) CN103458034B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580531A (zh) * 2015-02-05 2015-04-29 湖南合天智汇信息技术有限公司 一种基于WebSocket代理的Web远程桌面访问控制方法
CN105450748A (zh) * 2015-11-23 2016-03-30 国云科技股份有限公司 一种基于Openstack的物理机远程桌面的方法
CN106060128A (zh) * 2016-05-25 2016-10-26 飞天诚信科技股份有限公司 一种浏览器访问智能密钥设备的方法及装置
CN107342934A (zh) * 2017-06-19 2017-11-10 浪潮金融信息技术有限公司 一种基于WebSocket的混合模式移动应用实时消息推送方法及系统
CN108989409A (zh) * 2018-07-04 2018-12-11 苏州浪潮智能软件有限公司 混合模式移动应用的通信方法及系统、客户端、服务器
CN110058912A (zh) * 2019-03-22 2019-07-26 山东超越数控电子股份有限公司 一种通过网页浏览器访问Spice远程桌面的方法
CN110417754A (zh) * 2019-07-11 2019-11-05 新华三大数据技术有限公司 一种基于主机代理服务权限认证的方法及装置
CN110650202A (zh) * 2019-09-26 2020-01-03 支付宝(杭州)信息技术有限公司 通信交互方法、装置及电子设备
CN111611052A (zh) * 2020-05-02 2020-09-01 山东同智伟业软件股份有限公司 在网页中与桌面应用交互的方法
CN113507527A (zh) * 2021-07-20 2021-10-15 上海万物新生环保科技集团有限公司 一种基于网关转发的代码数据访问方法及设备
CN114979240A (zh) * 2022-07-26 2022-08-30 杭州奇思妙行网络科技有限公司 一种分布式WebSocket接入系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187854A1 (en) * 2007-12-21 2009-07-23 Richard Leo Murtagh Methods and systems for generating an enumeration of window types that lack contact data relevant to a user
CN102257479A (zh) * 2008-12-01 2011-11-23 思杰系统有限公司 用于优化运行至少一个进程的虚拟机的配置的系统和方法
CN102257481A (zh) * 2008-12-23 2011-11-23 思杰系统有限公司 用于由管理程序控制对物理资源的访问的系统和方法
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187854A1 (en) * 2007-12-21 2009-07-23 Richard Leo Murtagh Methods and systems for generating an enumeration of window types that lack contact data relevant to a user
CN102257479A (zh) * 2008-12-01 2011-11-23 思杰系统有限公司 用于优化运行至少一个进程的虚拟机的配置的系统和方法
CN102257481A (zh) * 2008-12-23 2011-11-23 思杰系统有限公司 用于由管理程序控制对物理资源的访问的系统和方法
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GACCOB: "HTML之WebSocket", 《HTTP://WWW.GACCOB.COM/PUBLISH/PROGRAMING/WEBSOCKET.PDF》 *
HICKSON: "The WebSocket protocol draft-hixie-thewebsocketprotocol-76", 《HTTP://TOOLS.IETF.ORG/HTML/DRAFT-HIXIE-THEWEBSOCKETPROTOCOL-76#SECTION-1.3》 *
张虹波 等: "基于WEB的网络工程虚拟实验室的实现", 《阴山学刊》 *
敖青云,蒋文蓉: "基于KVM和QEMU的虚拟桌面系统的实现与应用", 《计算机应用软件》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580531A (zh) * 2015-02-05 2015-04-29 湖南合天智汇信息技术有限公司 一种基于WebSocket代理的Web远程桌面访问控制方法
CN105450748A (zh) * 2015-11-23 2016-03-30 国云科技股份有限公司 一种基于Openstack的物理机远程桌面的方法
CN106060128A (zh) * 2016-05-25 2016-10-26 飞天诚信科技股份有限公司 一种浏览器访问智能密钥设备的方法及装置
CN106060128B (zh) * 2016-05-25 2019-05-10 飞天诚信科技股份有限公司 一种浏览器访问智能密钥设备的方法及装置
CN107342934A (zh) * 2017-06-19 2017-11-10 浪潮金融信息技术有限公司 一种基于WebSocket的混合模式移动应用实时消息推送方法及系统
CN108989409A (zh) * 2018-07-04 2018-12-11 苏州浪潮智能软件有限公司 混合模式移动应用的通信方法及系统、客户端、服务器
CN110058912A (zh) * 2019-03-22 2019-07-26 山东超越数控电子股份有限公司 一种通过网页浏览器访问Spice远程桌面的方法
CN110417754B (zh) * 2019-07-11 2021-12-07 新华三大数据技术有限公司 一种基于主机代理服务权限认证的方法及装置
CN110417754A (zh) * 2019-07-11 2019-11-05 新华三大数据技术有限公司 一种基于主机代理服务权限认证的方法及装置
CN110650202A (zh) * 2019-09-26 2020-01-03 支付宝(杭州)信息技术有限公司 通信交互方法、装置及电子设备
CN110650202B (zh) * 2019-09-26 2021-02-19 支付宝(杭州)信息技术有限公司 通信交互方法、装置及电子设备
CN111611052A (zh) * 2020-05-02 2020-09-01 山东同智伟业软件股份有限公司 在网页中与桌面应用交互的方法
CN111611052B (zh) * 2020-05-02 2023-03-21 同智伟业软件股份有限公司 在网页中与桌面应用交互的方法
CN113507527A (zh) * 2021-07-20 2021-10-15 上海万物新生环保科技集团有限公司 一种基于网关转发的代码数据访问方法及设备
CN113507527B (zh) * 2021-07-20 2023-05-30 上海万物新生环保科技集团有限公司 一种基于网关转发的代码数据访问方法及设备
CN114979240A (zh) * 2022-07-26 2022-08-30 杭州奇思妙行网络科技有限公司 一种分布式WebSocket接入系统及方法

Also Published As

Publication number Publication date
CN103458034B (zh) 2017-10-10

Similar Documents

Publication Publication Date Title
CN103458034A (zh) 一种通过web页面访问spice协议远程桌面的方法
Soni et al. API features individualizing of web services: REST and SOAP
US10225255B1 (en) Count-based challenge-response credential pairs for client/server request validation
US9083739B1 (en) Client/server authentication using dynamic credentials
US10708249B2 (en) Challenge-dynamic credential pairs for client/server request validation
US10868743B2 (en) System and method for providing fast platform telemetry data
WO2017152050A1 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
US8201238B1 (en) Remote directory browsing through a secure gateway of a virtual private network
WO2011149486A1 (en) System and method for continuation of a web session
US8819286B2 (en) Methods, systems, and apparatus for processing messaging data sets using structured data sets
CN101132420A (zh) 一种基于ssl vpn的链接改写方法和设备
CN105306433B (zh) 一种访问虚拟机服务器的方法和装置
CN103108037B (zh) 一种通信方法,Web服务器及Web通信系统
CN103414704A (zh) 一种通用虚拟数据加密存储系统
WO2023273719A1 (zh) 一种mesh组网下的升级方法与装置
WO2016065787A1 (zh) 一种rdp数据采集装置及方法
JP6521762B2 (ja) Httpサーバとその制御方法、画像形成装置およびプログラム
CN102624526A (zh) 用于文件传输协议的简单身份验证方法
CN102714653A (zh) 用于访问私人数字内容的系统和方法
CN102571817B (zh) 访问应用服务器的方法及装置
WO2018055464A1 (en) Method of communication of the cryptographic apparatus with a computing device, and cryptographic apparatus
CN108989409A (zh) 混合模式移动应用的通信方法及系统、客户端、服务器
JP2005301576A (ja) データ通信システムの制御方法、データ通信システム、及び情報処理装置
CN104967675A (zh) 避免病毒运行和传播的金融网点柜面上传输文件的方法
JP6539497B2 (ja) 通信中継システム、デバイス収容端末、サーバ側コンピュータ、プログラム、及び通信中継方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Patentee before: G-Cloud Technology Co., Ltd.

CP02 Change in the address of a patent holder