VMware 社区您好,
我在尝试通过 WebSocket 连接到 HTML 控制台时遇到问题。以下是我遵循的过程以及我遇到的错误。任何指导将不胜感激。
使用 Python,我检索了虚拟机的 VNC 连接信息。使用的代码片段如下:
try:
ticket = vm.AcquireMksTicket()
print("VNC connection information for {}:".format(vm_name))
print("Host: {}".format(ticket.host))
print("Port: {}".format(ticket.port))
print("Ticket: {}".format(ticket.ticket))
print("SSL thumbprint: {}".format(ticket.sslThumbprint))
except vmodl.MethodFault as e:
print("Failed to get VNC connection information: {}".format(e.msg))
exit(1)
这导致了以下结果
VNC connection information for dev-test - 10.xxxxxxxxxxxx:
Host: ch1-dev-esxi1.lab.local
Port: 902
Ticket: 52xxxxxxxxxxxxxxxxxxxxxxxx
SSL thumbprint: [Thumbprint]
问题:
但是,当尝试使用此信息连接到 HTML 控制台时,我遇到了 WebSocket 连接失败。错误信息是:
与“wss://[IP]:[端口]/ticket/[Ticket-ID]”的 WebSocket 连接失败
这是我用于连接的 HTML 和 JavaScript 代码:
<!DOCTYPE html>
... [Rest of the HTML code] ...
<script>
var wmks = WMKS.createWMKS("wmksContainer",{})
.register(WMKS.CONST.Events.CONNECTION_STATE_CHANGE, function(event, data){
if(data.state == WMKS.CONST.ConnectionState.CONNECTED){
console.log("connection state change: connected");
}
});
wmks.connect("wss://ch1-dev-esxi1.lab.local:902/ticket/52dxxxxxxxxxxxxxxx");
</script>
</body>
</html>
额外检查:
虚拟机运行没有问题。
VMware Tools 已安装、处于最新状态且正在运行(版本 12288、12.0.0)。
我不确定为什么此 WebSocket 连接失败。有没有人遇到过类似的问题或者可以提供一些可能出现问题的见解?
提前感谢您的帮助!
问题现已解决。该问题与通过我的 Python 脚本中的以下行创建的票证相关
ticket = vm.AcquireMksTicket()
我用下面的行替换了上面的行。
ticket = vm.AcquireTicket(ticketType='webmks')
AcquireMksTicket 仅适用于非常旧的 vSphere 版本。