04-功能详解
功能详解
WebSocket 客户端
- 用户在 URL 框中输入
ws://或wss://地址 - 点击 连接
- 底层执行 WebSocket 握手(HTTP Upgrade)
- 握手成功 → 状态灯变绿,连接建立
- 握手失败 → 显示错误信息
数据收发
- 发送:支持 Text 和 Binary 两种帧类型
- 接收:自动识别帧类型并在日志中显示
自动重连
当前版本不支持自动重连。连接断开后需手动点击连接。
Ping/Pong
Qt WebSocket 底层自动处理 Ping/Pong 心跳帧,保持连接活跃。用户无需手动处理。
WebSocket 服务端
- 输入监听端口和路径
- 点击 监听
- 客户端通过
ws://host:port/path发起连接 - 握手成功后客户端出现在列表中
- 可选中客户端并发送消息
多客户端
与 TCP 服务端类似,支持多个客户端同时连接。发送前需选中目标客户端。
路径匹配
- 服务端只会接受路径匹配的连接请求。例如服务端路径为
/ws: ws://localhost:9000/ws✅ 匹配ws://localhost:9000/chat❌ 不匹配ws://localhost:9000/ws/chat❌ 不匹配(精确匹配)
文本消息 vs 二进制消息
| 特性 | Text | Binary |
|---|---|---|
| 编码 | UTF-8 | 任意字节 |
| 适合 | JSON、XML、纯文本 | 图片、音频、自定义协议 |
| Hex 显示 | 可显示原始字符 | 必须十六进制显示 |
| Hex 发送 | 不支持(文本模式) | 勾选 Hex发送后可用 |
与 HTTP 的对比
| HTTP | WebSocket | |
|---|---|---|
| 连接模式 | 请求-响应,短连接 | 全双工,长连接 |
| 服务端推送 | 不支持(需轮询) | 原生支持 |
| 头部开销 | 数百字节/请求 | 2-14 字节/帧 |
| 适用场景 | REST API、网页 | 实时通信、游戏、推送 |
数据可视化(图表)
- 在左侧 数据可视化 面板中勾选 启用图表
- 图表区域显示在日志下方
图表类型
| 类型 | 适用场景 |
|---|---|
| 折线图 | 连续数据趋势(如实时数值监控) |
| 平滑曲线 | 同上,更平滑的展示 |
| 散点图 | 离散数据点分布 |
| 面积图 | 强调数据量的变化 |
| 柱状图 | 分类统计/计数 |
| 饼图 | 占比分析 |
添加数据提取规则
图表需要从 WebSocket 接收数据中提取数值才能绘图:
- 输入 规则名称(如 "温度")
- 选择规则类型并输入表达式:
| 类型 | 说明 | 示例表达式 |
|---|---|---|
| JSON 路径 | 从 JSON 数据中提取字段 | temperature 或 data.sensor1 |
| 正则表达式 | 用正则匹配提取数值 | temp[:=]\s(\d+\.?\d) |
| Modbus 寄存器 | 从 Modbus 响应中提取寄存器值 | 0(寄存器地址) |
| 布尔 | 匹配到即计为 1 | alarm=1 |
- 点击 添加规则,图表自动更新
预设模板
| 模板 | 自动生成规则 |
|---|---|
| 温度/电压 折线 | 正则提取浮点数 |
| JSON 多字段 | 两个 JSON 路径规则 |
| 百分比饼图 | 正则提取(饼图模式) |
| 频率柱状图 | 正则提取(柱状图模式) |
时间窗口
调整图表显示的时间范围:5 秒 ~ 600 秒(10 分钟)。
智能分析
点击 智能分析 按钮,程序自动扫描最近的接收数据并推荐可能的数值提取规则。
Hex 模式
勾选显示设置中的 十六进制显示 后,WebSocket 消息以十六进制展示,便于分析二进制数据。
十六进制发送
勾选 Hex发送 并选择 Binary 消息类型后,发送框内容解析为十六进制字节序列:
输入:AA 55 01 02 FF
发送:\xAA\x55\x01\x02\xFF (5 字节)
日志导出
支持 TXT 和 CSV 两种格式。
TXT 格式
10:23:45.123 [TX] {"type":1,"target":"SendMessage",...}
10:23:45.125 [RX] {"type":1,"target":"ReceiveMessage",...}
10:23:45.123 [TX] {"type":1,"target":"SendMessage",...}
10:23:45.125 [RX] {"type":1,"target":"ReceiveMessage",...}CSV 格式
Timestamp,Direction,Data
"10:23:45.123","[TX]","{...}"
"10:23:45.125","[RX]","{...}"
Timestamp,Direction,Data
"10:23:45.123","[TX]","{...}"
"10:23:45.125","[RX]","{...}"导出时如果开启了 Hex 显示,则导出十六进制格式的数据。