如何通过WebSocket操作 KVM?wss:///websocket/vmm,但看不到控制命令

内容:
我目前在调试 BMC 的 KVM 管理界面,已经在浏览器 DevTools 中抓到了 KVM 页面通过 WebSocket 发起的连接:

请求地址:wss://192.168.16.102:8208/websocket/vmm
状态码:101 Switching Protocols(连接成功)

抓包中看到 payload 是类似这样的十六进制数据(举例如下):

0700000000000000

但整个连接过程中,并没有明显的 JSON 或明文格式


大佬们,目前我们在对接某固件联盟送测需求,要求对 Web KVM Media 模块Web-API 接口进行验证。

这个接口是通过 **wss(WebSocket Secure)套接字** 实现的,和传统的 请求不太一样,主要是不知道如何请求。

参考webui实现

介绍

Websocket 是一种网络通信协议,主要特点包括:

  • **双向通信:**客户端和服务器可以同时发送和接收数据,实现真正的实时交互。

  • **持久连接:**一旦建立连接,连接会一直保持,直到一方关闭连接,无需像HTTP 那样频繁地建立和断开连接。

  • **低延迟:**由于连接是持久的,数据传输的延迟较低,适合需要实时性较高的应用场景。

  • **高效:**相比于轮询等方式,WebSocket 可以减少不必要的网络流量和延迟,提高数据传输效率。

  • **基于TCP:**WebSocket 协议建立在TCP 协议之上,具有可靠的传输特性。

  • **支持文本和二进制数据:**可以传输文本和二进制数据,适应不同的应用需求。

WebSocket 和HTTP 的区别:

特性 WebSocket HTTP
通信方式 双向、持久连接 单向、请求-响应
延迟 相对较高
流量 相对较低 相对较高
实时性 相对较低
连接建立 一次握手,保持连接 每次请求都需要建立连接

参考教程

1 个赞

连接实现在src/pages/VirtualControl/KvmH5/classes/virtualmedia.ts_CreateConnection方法。

2 个赞

谢谢大佬