VMware HTML Console SDK 连接失败

问题描述 投票:0回答:1

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 连接失败。有没有人遇到过类似的问题或者可以提供一些可能出现问题的见解?

提前感谢您的帮助!

websocket vmware vnc vmware-tools
1个回答
1
投票

问题现已解决。该问题与通过我的 Python 脚本中的以下行创建的票证相关

ticket = vm.AcquireMksTicket()

我用下面的行替换了上面的行。

 ticket = vm.AcquireTicket(ticketType='webmks')

AcquireMksTicket 仅适用于非常旧的 vSphere 版本。

© www.soinside.com 2019 - 2024. All rights reserved.