04-功能详解

功能详解

WebSocket 客户端

  1. 用户在 URL 框中输入 ws://wss:// 地址
  2. 点击 连接
  3. 底层执行 WebSocket 握手(HTTP Upgrade)
  4. 握手成功 → 状态灯变绿,连接建立
  5. 握手失败 → 显示错误信息

数据收发

自动重连

当前版本不支持自动重连。连接断开后需手动点击连接。

Ping/Pong

Qt WebSocket 底层自动处理 Ping/Pong 心跳帧,保持连接活跃。用户无需手动处理。

WebSocket 服务端

  1. 输入监听端口和路径
  2. 点击 监听
  3. 客户端通过 ws://host:port/path 发起连接
  4. 握手成功后客户端出现在列表中
  5. 可选中客户端并发送消息

多客户端

与 TCP 服务端类似,支持多个客户端同时连接。发送前需选中目标客户端。

路径匹配

文本消息 vs 二进制消息

特性TextBinary
编码UTF-8任意字节
适合JSON、XML、纯文本图片、音频、自定义协议
Hex 显示可显示原始字符必须十六进制显示
Hex 发送不支持(文本模式)勾选 Hex发送后可用

与 HTTP 的对比

HTTPWebSocket
连接模式请求-响应,短连接全双工,长连接
服务端推送不支持(需轮询)原生支持
头部开销数百字节/请求2-14 字节/帧
适用场景REST API、网页实时通信、游戏、推送

数据可视化(图表)

  1. 在左侧 数据可视化 面板中勾选 启用图表
  2. 图表区域显示在日志下方

图表类型

类型适用场景
折线图连续数据趋势(如实时数值监控)
平滑曲线同上,更平滑的展示
散点图离散数据点分布
面积图强调数据量的变化
柱状图分类统计/计数
饼图占比分析

添加数据提取规则

图表需要从 WebSocket 接收数据中提取数值才能绘图:

  1. 输入 规则名称(如 "温度")
  2. 选择规则类型并输入表达式:
类型说明示例表达式
JSON 路径从 JSON 数据中提取字段temperaturedata.sensor1
正则表达式用正则匹配提取数值temp[:=]\s(\d+\.?\d)
Modbus 寄存器从 Modbus 响应中提取寄存器值0(寄存器地址)
布尔匹配到即计为 1alarm=1
  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",...}

CSV 格式
Timestamp,Direction,Data
"10:23:45.123","[TX]","{...}"
"10:23:45.125","[RX]","{...}"

导出时如果开启了 Hex 显示,则导出十六进制格式的数据。