我正在尝试使用libvnc为VMware ESXi 6 vm的控制台编写客户端应用程序。从ESXi 6开始,VMware为此提供了websocket。他们还为此发布了基本的HTML5客户端。
ESXi websocket VNC使用连接路径授权。当HTML5客户端试图连接它发出这样的请求: wss:// esxi_host_ip /机票/ secret_token
从我的研究,我知道这个方法也适用于noVNC客户端(https://github.com/kanaka/noVNC)客户端传递"path"参数给RFB实现
从libvnc网站我知道它支持websockets,但我不知道它是否支持客户端,如果答案是是,我怎么能做到这一点?
最后的答案是不但简单的破解是可能的。
无法从libvnc直接连接websocket vnc服务器
作为解决我的问题,我使用自定义的tcp到websocket代理,我首先协商websocket连接,然后连接标准tcp vnc客户端。