🔍 已过滤
⚙️ 全局配置
🔍 日志过滤
模糊查找
屏蔽词
查找与屏蔽规则会自动保存,刷新页面后仍生效
💓 心跳配置(当前选中连接)
间隔 ms 超时 ms 内容
心跳配置跟随每个连接独立保存;「应用到全部」可一次性同步给所有连接
💾 全量数据备份与恢复
当前数据统计加载中...
• 备份范围:全部 WebSocket 连接(URL/心跳/重连配置/每个连接的参数预设)、全部快捷项、全部批量任务、日志过滤/屏蔽词等全局配置。
• 不会包含:当前消息日志(日志属临时内容,需留存请先用「复制全部日志」或右键「复制全部日志」另行保存)、正在运行中的循环/批量任务状态(刷新后默认不自动重开,符合现有机制)。
• 恢复会完全覆盖当前本地配置,确认后页面将自动刷新使新配置生效。
📖 WS 多连接调试器 · 使用说明
① 连接管理 ② 日志与过滤 ③ 手动发送 ④ 快捷发送 ⑤ 批量发送 ⑥ 心跳 ⑦ 折叠与布局 ⑧ 全局配置 ⑨ 数据持久化 ⑩ 快捷键总表

① 连接管理(左侧边栏)

用于同时管理多个 WebSocket 客户端,支持批量创建、批量连接/断开、重命名、删除等操作。

控件说明
地址输入框填入 WebSocket URL,支持 ws:// 与 wss://,例如 ws://localhost:8080/ws。
批量数量新建时同时创建 N 个客户端(1~200),名称自动编号,例如 客户端1 / 客户端2 / ...。
+ 新建连接按批量数量创建连接。勾选"新建自动连接"后,新建完成会立即自动发起连接。
全部连接 / 全部断开一键对当前所有连接执行连接或断开操作。
新建自动连接新建后立刻发起连接;不勾选时只创建、不自动连。
连接列表每个连接左侧圆点表示状态: 已连接、 连接中、 错误/关闭;名字旁的 ♥ 表示心跳已开、🔁N 表示该连接正跑 N 个循环/批量任务。
选中连接单击某条连接切换当前选中的客户端,下方日志区、URL 栏、心跳配置都会切换到该连接。
重命名双击连接名可以重命名(例如改成 用户A、压测-001)。
删除鼠标悬停行时右侧出现 ×,点击删除该连接(会自动停止该连接上的循环和心跳)。
工具栏 URL/连接/断开切换选中连接后,可在中间工具栏修改该连接的 URL,点击「连接」「断开」单独控制当前连接。
自动重连勾选后,连接被服务端关闭时会自动重连(每 2 秒一次,最多 10 次)。
💡 小提示:批量创建 + 广播 + 循环发送,能快速模拟多客户端压测场景。

1.6 批量删除连接

1.6 批量删除连接

② 日志区与消息查看

选中某连接后,中间大区域显示该连接的收发日志,颜色区分方向:

  • ← 收(绿色):服务端发来的消息
  • → 发(蓝色):自己发出的消息
  • ♥ 心跳(紫色):心跳包收发与超时提示
  • · 系统(灰色斜体):连接/断开/配置变更/循环启停等提示
按钮说明
清空日志清空当前选中连接的日志显示(不影响已持久化的数据,刷新后重新载入本地缓存)。
复制日志复制当前选中连接可见日志到剪贴板;如果开启了过滤/屏蔽/隐藏心跳,只复制当前可见的日志。
🔍 已过滤徽标工具栏出现黄色"🔍 已过滤"徽标时,说明当前启用了关键词过滤/屏蔽/隐藏心跳,可能看不到全部消息。

双击展开 JSON:当某条消息内容看起来是合法 JSON(以 { / [ 开头并以 } / ] 结尾、可被解析),鼠标悬停该行时消息右侧会出现"双击格式化"提示;双击该行即可将消息格式化为缩进多行显示,行左侧会出现蓝色高亮边;再次双击即可缩回成一行。非 JSON 文本不会触发展开,悬停时也不会显示提示。展开后的长 JSON 支持横向滚动查看,不影响其它日志行。

右键批量展开 / 折叠:在日志区空白处或任意日志行上右键,菜单中提供 📖 展开全部 JSON(把当前可见的所有 JSON 消息一次性格式化为多行显示)和 📕 折叠全部 JSON(把已展开的 JSON 全部缩回一行)。执行后底部会弹出「已展开 N 条 JSON / 已折叠 N 条 JSON」的提示;没有可处理的 JSON 时提示 0 条,不会报错。

💡 日志单连接最多保留 1000 条,超过会自动丢弃最旧的记录,保证页面流畅。

③ 手动发送(底部输入框)

底部文本框支持实时输入消息发送给当前连接,支持直接发 JSON、二进制 hex 等任意文本。

控件说明
文本框输入要发送的任意文本(支持多行)。输入框高度可拖动上方调节条自由调整(见⑦折叠与布局)。
发送按钮向当前选中连接发送消息。
广播到全部已连接把同一条消息发送给当前所有已打开的连接(断开/连接中的连接会自动跳过)。
格式化 JSON如果输入的是 JSON 字符串,一键格式化(缩进美化),方便编辑长 JSON。
存为快捷项把当前输入框里的内容快速保存为一条快捷发送项(进入④快捷发送流程)。
Enter 发送勾选后按 Enter 直接发送、Shift+Enter 换行;取消勾选则 Enter 换行、Ctrl+Enter 发送。
💡 键盘:默认 Enter 发送;Ctrl/⌘+Enter 在"Enter 发送"关闭时也能发送,避免被换行吞掉。

④ 快捷发送(右侧面板上半部分 ⚡)

把常用消息(例如登录、进入房间、心跳、业务指令等)保存为按钮,点一下就发;支持参数化、循环、广播、每连接独立预设。

4.1 新建 / 编辑快捷项

点「+ 添加」弹出编辑窗;已有项需点击按钮右侧的 ✎ 图标才能编辑(已取消双击编辑,避免快速连点发送时误弹出编辑框),字段说明:

字段说明
名称按钮上显示的文字,建议简短,例如"登录"、"发消息"。前 9 个可通过 Alt+1~Alt+9 快捷键触发。
消息内容发送的具体文本,建议是 JSON;支持 {{参数名}} 占位符,发送时会被替换成对应值。
参数列表每一行定义一个参数:参数名(和占位符对应,例如 username)+ 默认值(未为某连接设值时使用)。点"+ 参数"手动添加;点"扫描 {{ }} 占位符"可自动从消息内容里识别 {{xxx}} 添加参数。
格式化 JSON一键格式化消息内容,方便查看与编辑。
默认目标「当前选中连接」= 只发给当前选中的那个;「全部已连接」= 默认广播。
默认开启循环新增后默认开启循环发送(见 4.3)。
循环间隔 (ms)循环模式下两次发送之间的毫秒间隔,最小 50ms。
循环次数总发送次数,填 0 表示无限循环。

4.2 拖拽排序

  • 每个快捷按钮左侧都有一个常驻显示的 ⠿ 拖拽手柄,鼠标悬停时变成黄色。
  • 按住 ⠿ 手柄上下拖动即可调整快捷项顺序;拖到目标按钮位置松开完成排序,排序后会提示"已调整快捷项顺序"。
  • 排序后自动持久化保存(localStorage),刷新后保持新顺序;前 9 个快捷项对应的 Alt+1~Alt+9 快捷键会自动跟随新顺序调整。
  • 拖拽过程中目标按钮会高亮蓝色边框;拖到空白区域则放在末尾。直接点击按钮区域(非手柄)不会触发拖拽。

4.3 参数预设(⚙ 按钮)—— 每个连接独立设置参数

  • 每个快捷按钮右侧,鼠标悬停会出现 ⚙ 按钮(参数预设)和 🔁 按钮(循环开关)、✎(编辑)、×(删除)。
  • 点 ⚙ 弹出"为当前连接设置参数"面板:为当前选中的这个连接单独填写每个参数的值,填完点「保存预设」。
  • 保存后,该按钮会显示绿色 ✓N 徽标(表示"此连接已自定义 N 个参数"),未设置时显示灰色 ⚙N。
  • 发送时(点击按钮/循环/被批量任务调用),该连接自动使用自己的预设值;如果没预设则用默认值;参数都没预设且没默认值则发送空串。不再弹窗让你输入。
  • 在 ⚙ 面板里把所有值清空保存,即可回到"使用默认值"的状态,徽标恢复为灰色。

4.4 循环发送(🔁 按钮)

  • 点按钮右侧的 🔁:立即发一次,然后按"循环间隔"重复发送。
  • 循环中按钮会绿色脉冲高亮,左侧显示 🔁剩余次数(无限循环显示 🔁∞);再点一次(变成 ⏹)即可停止。
  • Shift + 点 🔁:强制对当前所有已连接的客户端广播循环。
  • 连接断开/被删除/快捷项被删除时,循环会自动停止;有限次数发完也会自动停止。
  • 工具栏/面板顶栏会显示「⏹ 停循环」按钮,一键停止所有正在跑的循环。

4.5 其它

  • 点击按钮本体:立即发送一次(按默认目标,单连接/广播);Shift+点击按钮:忽略默认目标,强制广播到所有已连接的客户端。
  • 备份/迁移:快捷项(含每个参数的默认值、目标、循环配置)会随全量备份一并保存。使用配置面板里的「📤 一键备份全部配置」/「📥 从备份文件恢复」即可在不同机器/浏览器间完整迁移全部快捷项、批量任务、连接与参数预设,不再需要单独导入导出。
💡 示例:消息内容写 {"cmd":"login","data":{"username":"{{username}}","password":"{{pwd}}"}}, 参数定义 username=user1、pwd=123456。 然后选中客户端1点 ⚙ 设 username=alice,选中客户端2设 username=bob。 点按钮或开循环时,客户端1发出的是 alice、客户端2发出的是 bob,完全不用弹窗输入。

⑤ 批量发送(右侧面板下半部分 📦)

把多个快捷项按顺序串成一条任务,一键执行(也可以循环多轮),适合登录→进房→发言等多步流程或压测场景。

5.1 新建批量任务

点「+ 新建任务」弹出编辑窗:

字段说明
任务名称任务条上显示的名字,例如"登录流程"、"登录+进房+发消息"。
步骤列表任务按顺序执行的快捷项序列。下拉选择已有的快捷项 → 填"发完后等多少 ms" → 点「+ 添加到末尾」。可以拖拽左侧 ⠿ 手柄调整顺序,点右侧 × 删除该步骤。
默认目标"当前选中连接"或"全部已连接"。
默认开启循环任务创建后默认循环执行多轮。
轮次间隔 (ms)一轮所有步骤发完之后,等多久再开始下一轮。
轮次总共执行多少轮,1=只发一轮、0=无限轮次。

5.2 执行与停止

  • 任务条右侧 ▶(绿色)按钮:立即按顺序从上到下执行,每一步发送后会等它对应的"ms 等"。
  • Shift + 点 ▶:忽略默认目标,强制广播到所有已连接的客户端。
  • 任务执行中会变绿色脉冲高亮,显示 R轮次·S步骤 进度徽标(如 R2/5·S3/8,无限轮显示 R2/∞)。
  • 执行中 ▶ 变为红色 ⏹,点它即可停止该任务。
  • 「⏹ 停批量」按钮一键停止所有正在跑的批量任务。

5.3 自动停止条件

  • 所有目标连接都断开或被删除时,任务自动停止;
  • 广播模式下会自动跳过已断开的连接;
  • 有限轮次发完后自动停止;
  • 任务中使用到的快捷项被删除时,下次执行会跳过该步骤。
💡 示例:要模拟"登录 → 等1秒 → 进入房间 → 等500ms → 发一条消息,循环10轮"。 先建 3 个快捷项(登录/进房/发消息),然后新建批量任务,依次添加步骤, 每步分别设等 0/1000/500,轮次间隔设 2000,轮次设 10, 点 ▶ 就会自动跑完整套流程。

⑥ 心跳配置(在 ⚙️ 配置面板里)

WebSocket 长时间没消息容易被网关断开,可启用心跳自动保持连接。每个连接独立配置。

参数说明
启用心跳开启后按固定间隔向服务端发送心跳内容。
间隔 (ms)两次心跳之间的时间,默认 5000(5 秒)。最小 100ms。
超时 (ms)发完心跳后等待服务端任意消息(含业务消息)的最长时间,超时则触发"超时处理"动作。
内容心跳包要发送的文本,默认 ping,也可以是 JSON 字符串等。
超时处理"超时仅告警":只打印一条红色告警日志;"超时断开":主动断开 WebSocket(如果开启了"自动重连",则会触发重连)。
应用到全部把当前连接的心跳配置(开关/间隔/超时/内容/动作)一次性同步给所有其它连接,省得逐个改。
💡 收到任何消息(包括业务消息、服务端主动心跳)都会视为"收到响应",重置超时计时,不需要一定是对心跳内容的回复。

⑦ 折叠与布局

三个区域都支持独立折叠,不用时完全不占空间,把屏幕留给消息日志。

区域折叠方式
左侧「🛰 连接列表」点右上角 ◀ 按钮、点标题"🛰 连接列表"文字、或按 Alt+L;折叠后工具栏最左侧出现「☰ 连接列表」按钮,点它展开。
右侧「⚡ 发送面板」点右上角 ▶ 按钮、面板标题文字、或按 Alt+R;折叠后工具栏出现「⚡ 发送面板」按钮,点它展开。
面板内快捷发送区点 ▾/▸ 按钮或"⚡ 快捷发送"标题,或按 Alt+Q;折叠后只保留标题一行,列表收起。
面板内批量发送区点 ▾/▸ 按钮或"📦 批量发送"标题,或按 Alt+B。

底部输入框高度调节:输入框正上方有一条灰色小横杠,按住上下拖动可自由调整输入框高度(最小 46px,最大时仍给日志区保留至少 130px);双击恢复默认 76px。高度会自动保存。

折叠状态会被记忆(见⑨持久化),下次打开保持上次的样子。

⑧ 全局配置(⚙️ 配置面板)

点工具栏「⚙️ 配置」打开右上角配置浮层(再点一次或按 Esc 关闭)。配置面板分两块:

8.1 日志过滤

项说明
🔍 模糊查找输入关键词后,日志区只显示包含该文本的行(不区分大小写),实时生效。
🚫 屏蔽词多个词用 | 分隔,例如 ping|pong|心跳,命中任意一个词的日志行都会被隐藏。
隐藏心跳日志勾选后所有 ♥ 心跳收发日志都不显示(不影响心跳机制本身)。
清空过滤一键清空查找关键词和屏蔽词,恢复显示全部日志。

8.2 心跳配置

见⑥心跳章节,心跳配置从原来的独立工具栏收进了这里,不占用常驻空间。

⑨ 数据持久化(存在浏览器 localStorage)

所有配置都会自动保存在当前浏览器的 localStorage 中,刷新页面、关闭浏览器再打开都会保留。具体包括:

类别保存内容
连接列表每个连接的名称、URL、自动重连开关、心跳配置、该连接对每个快捷项的参数预设。
快捷项所有快捷项的名称、消息内容、参数定义、默认值、默认目标、循环配置(间隔/次数/默认开启)。
批量任务所有批量任务的名称、步骤列表(顺序+每步间隔)、默认目标、循环配置(轮次间隔/轮次/默认开启)。
全局配置日志模糊查找词、屏蔽词、是否隐藏心跳;界面折叠状态(左/右面板、快捷/批量栏);底部输入框高度。
⚠️ 注意:持久化是按浏览器 + 当前域名/本地文件隔离的。清浏览器数据、换浏览器、用隐私模式都会丢失; 建议定期使用配置面板里的「📤 一键备份全部配置」导出一份 JSON 文件存好,换机/清缓存后用「📥 从备份文件恢复」即可一次性还原所有连接、快捷项、批量任务和全局配置。

💾 一键全量备份 / 恢复

点工具栏「⚙️ 配置」,在面板底部的💾 全量数据备份与恢复区可以看到当前本地数据统计(连接数、快捷项数、批量任务数、总大小):

  • 📤 一键备份全部配置:把上面表格里四类数据(连接(含每个连接对每个快捷项的自定义参数预设)、快捷项、批量任务、全局配置)一次性打包成一个 JSON 文件下载到本地,文件名形如 wsdebug-backup-20261104-012345.json,带时间戳方便管理。
  • 📥 从备份文件恢复:选择之前导出的 JSON 备份文件,弹窗会显示备份内包含多少连接/快捷项/批量任务和生成时间,确认后会关闭所有正在运行的 WebSocket、停止所有循环/批量任务、完全覆盖当前本地配置,然后自动刷新页面使新配置生效。
  • 备份不包含:当前消息日志(日志属临时内容,需留存请用日志右键「📋 复制全部日志」)、正在运行中的循环/批量任务状态(刷新后默认不自动重开,符合现有机制)。

⑩ 快捷键总表

快捷键作用
F1打开/关闭本帮助面板。
Alt+1 ~ 9直接发送第 1~9 个快捷项(按面板上顺序)。
Alt+Q折叠/展开右侧面板里的"⚡ 快捷发送"区。
Alt+B折叠/展开右侧面板里的"📦 批量发送"区。
Alt+L折叠/展开左侧连接列表。
Alt+R折叠/展开右侧发送面板整体。
Enter(默认)在底部输入框中发送消息。
Shift+Enter在底部输入框中换行。
Ctrl/⌘+Enter在"Enter 发送"关闭时发送;在快捷项编辑窗里保存。
Esc关闭当前打开的编辑弹窗(快捷项/参数预设/批量任务/配置面板/帮助面板)。
💡 所有 Alt+快捷键在弹窗打开时会自动禁用,避免误触发。 快捷按钮默认目标为"当前连接"时,直接发;默认目标为"全部"时,就是广播。 在任意快捷按钮/批量 ▶ /循环 🔁 上 Shift+点击 都能强制广播。