由于自动化的测试平台是通过web搭建的, 但是想远程访问client桌面时还需要用vnc viewer或windows remote的方式 所以一直想做一个一站式的交互方式, 随即就研究了一下通过web端通过html的方式直接在浏览器中打开一个client desktop, 并可以远程进行控制.
client本身都安装了tight vnc, 所以想到了通过noVNC搭建一个server, 用于转发端口到web上.
node install
3. 安装noVNC -- github找到noVNC项目clone到本地
git clone https://github.com/novnc/noVNC.git
4. 进入novnc/utils 下点击launch.sh (windows平台下需要有 bash), 会自动clone websockify 这个项目到目录下.
5. cd到websockify/other/js下,通过websockify对端口进行代理, 代码如下
node websockify.js 8000 :5091
6. 将noVNC放到tomcat 的webapps下进行部署, 注意,这里需要将vnc.html改成index.html, 我是copy了一个vnc.html rename成了index.html, 这样tomcat能直接找到主入口.
浏览器输入http://
例: http://192.168.31.13:8080/noVNC-master
进入后左侧可以设置web socket的地址, server 填写IP 和 port, port这里我转发的是8000, 具体的port可以参考node 启动websockify时5901转发到的port.
点击 Connect, 就可以登录到remote的client了, 这里遇到了两个问题, 一个是桌面会由于分辨率设置问题显示不全, 需要调整tight vnc的分辨率, 第二个问题是登录到的windows client显示不出来鼠标的轨迹, 这个问题目前还没有解决,不过目前更多的是view only的需求, 因此还没急着去研究.
https://github.com/novnc/noVNC.git4.
https://github.com/novnc/noVNC.git