CN103458034A - 一种通过web页面访问spice协议远程桌面的方法 - Google Patents
一种通过web页面访问spice协议远程桌面的方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及云计算技术领域,特别是指一种通过WEB页面访问SPICE协议远程桌面的方法。本发明首先在宿主机上安装一个WebSocket的代理服务器,用于转发SPICE远程桌面的连接请求和发送SPICE服务器的协议数据;WEB页面向WEB服务器请求SPICE服务器的地址和SPICE桌面的端口,响应以后,根据SPICE服务的地址,向WebSocket代理服务器发出建立WebSocket连接的请求;最后WEB页面将使用WebSocket连接发送SPICE协议的命令,并从SPICE服务器接收协议数据。本发明的方法兼容性强、无需安装附加插件、连接行为易于控制;可用于开发虚拟机基于WEB的管理***。
Description
技术领域
本发明涉及云计算技术领域,特别是指一种通过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发起连接:
在websockify端,根据浏览器的请求信息,建立连接:
WEB页面使用Javascript接收数据并处理数据:
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连接。
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)
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)
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虚拟机远程控制的方法 |
-
2013
- 2013-09-04 CN CN201310398047.3A patent/CN103458034B/zh active Active
Patent Citations (4)
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)
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)
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 | |
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 | |
CN105306433B (zh) | 一种访问虚拟机服务器的方法和装置 | |
US8201238B1 (en) | Remote directory browsing through a secure gateway of a virtual private network | |
CN101132420A (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
EP2577549A1 (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 | |
CN103108037B (zh) | 一种通信方法,Web服务器及Web通信*** | |
CN103414704A (zh) | 一种通用虚拟数据加密存储*** | |
WO2023273719A1 (zh) | 一种mesh组网下的升级方法与装置 | |
WO2016086755A1 (zh) | 一种报文处理的方法和透明代理服务器 | |
WO2016065787A1 (zh) | 一种rdp数据采集装置及方法 | |
CN106027555B (zh) | 一种采用sdn技术改善内容分发网络安全性的方法及*** | |
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) | 混合模式移动应用的通信方法及***、客户端、服务器 | |
CN104168206B (zh) | 适配网关负载均衡控制装置方法、装置和*** | |
JP2005301576A (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 |