内容:
我目前在调试 BMC 的 KVM 管理界面,已经在浏览器 DevTools 中抓到了 KVM 页面通过 WebSocket 发起的连接:
请求地址:wss://192.168.16.102:8208/websocket/vmm
状态码:101 Switching Protocols(连接成功)
抓包中看到 payload 是类似这样的十六进制数据(举例如下):
0700000000000000
但整个连接过程中,并没有明显的 JSON 或明文格式
内容:
我目前在调试 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 |
|---|---|---|
| 通信方式 | 双向、持久连接 | 单向、请求-响应 |
| 延迟 | 低 | 相对较高 |
| 流量 | 相对较低 | 相对较高 |
| 实时性 | 高 | 相对较低 |
| 连接建立 | 一次握手,保持连接 | 每次请求都需要建立连接 |
连接实现在src/pages/VirtualControl/KvmH5/classes/virtualmedia.ts 的_CreateConnection方法。
谢谢大佬