WebSocket 会话与 WS Flow

DevPeek 会把经过代理的 WS / WSS 长连接与普通 HTTP 请求一起记录,并提供握手、帧检索、模拟发送、文本帧拦截与 HAR 导出。需要完全替代真实服务端时,可进一步启用 WS Flow。

WebSocket 会话与单文件 WS Flow 已在 1.4.0 Beta 提供。工作区多文件与转发到真实上游等扩展能力仍以应用内实际提示为准。

查看 WebSocket 连接

客户端须先接入 DevPeek 代理;WSS 还需要信任根证书,并让目标域名进入 SSL 解密范围。

  1. 在抓包页选择对应客户端 Tab,按内容类型筛选 WebSocket。
  2. 展开请求列表下方的“WebSocket 连接”,选择一条连接。
  3. 在“概览”查看 URL、连接状态与持续时间,在“握手”对照 Upgrade 请求,在“会话”查看帧。
  4. HTTP Upgrade 行与连接详情会保持次高亮,便于在握手请求和长连接之间来回对照。

筛选、查看与模拟发送

  • 按客户端发出 / 服务端返回筛选方向,并可搜索帧内容。
  • 可隐藏 Ping、Pong、Close 等控制帧;大量帧会按需加载。
  • 选中文本帧后查看原始内容与预览;可复制帧,或填入底部输入框修改后重发。
  • 连接仍处于 Open 状态时,可从输入框模拟客户端帧或服务端帧;已关闭连接只能回看。

拦截文本帧

“拦截文本帧”适合临时改消息或验证客户端容错,不需要先编写 Flow。

  1. 在连接“会话”中打开“拦截文本帧”。
  2. 后续文本帧进入暂停状态,对端在处理前不会收到。
  3. 选中暂停帧,修改内容后放行,或直接丢弃;关闭拦截不会自动替你构造响应。

导出 HAR

会话可导出全部帧、当前筛选结果、最近 500 / 2000 / 10000 帧,也可围绕某一业务帧导出附近范围。Ping、Pong、Close 控制帧不会写入 HAR;导出前请检查 Token、Cookie 与业务消息中的个人数据。

用 WS Flow 充当虚拟服务端

当连接 URL 命中 Flow 的 `# ws`,且文件头使用 `# upstream off` 时,DevPeek 不连接真实上游,而是按 Flow 的条件、返回、scope 和生命周期规则回包。

  1. 打开右侧“WS Flow”面板,或从“代理 → WS Flow 配置”进入管理页。
  2. 新建单文件规则,填写标题、`# ws` 地址与 Flow 正文。
  3. 先点击校验;存在 E 类错误时不能应用,W 类提示可按场景确认。
  4. 保存并打开规则开关,再让客户端新建 WebSocket 连接。

阅读 WebSocket Mock 上手教程 · 查阅 .dpws 完整语法

排查建议

  • WSS 只有握手、没有明文帧:检查客户端证书信任、SSL 包含 / 排除名单,以及 App 是否使用证书固定。
  • Flow 未命中:确认规则已启用、客户端建立的是新连接,并核对 `# ws` 与实际 URL。
  • 客户端连接后立即断开:检查 Flow 校验结果、`# ping auto`、`# idle-timeout` 和未命中策略。
  • 拦截开关不可用:连接可能已关闭;请选择仍为 Open 的连接。