在 DevTools 里
捕获 · 编辑 · 回放 SSE 流
实时监控页面中的 Server-Sent Events,随手修改任意一帧,开启代理后页面直接收到你编辑过的数据 —— 不改一行后端代码,就能 mock 流式接口。
每一帧 SSE,到达即可见
自动拦截页面里所有 EventSource 和 text/event-stream 类型的 fetch 请求,在独立的 DevTools 面板里按时间顺序展示每一帧。
- 完整展示 event / data / id / retry 字段
- 连接状态实时反馈:connected / closed / terminated / replaying
- 多个 SSE 会话并存,互不干扰;一键「终止」当前连接
- 基于
response.clone()读取,不影响页面正常消费
深层嵌套也一目了然
帧数据自动格式化并语法高亮;字符串里再套一层 JSON 也会被自动展开。每个对象和数组左侧都有折叠箭头,长数据随手收起。
- 点击箭头折叠 / 展开任意节点,折叠后显示字段数量
- 每帧右上角「折叠全部」,一键收起整段 JSON
- 工具栏「折叠当前所有」,整页帧列表瞬间变清爽
- 深色 / 浅色主题随心切换
改一帧,页面就收到新数据
点「编辑」修改任意帧的 JSON 或文本,打开「代理」开关。页面下一次请求同一个 SSE 地址时,扩展会按你保存的帧序列回放,而不是真实服务器响应。
- 单帧编辑、删除、复制到下方,自由拼装 mock 序列
- 「间隔」控制每帧回放的毫秒数,模拟真实流速
- 回放中的帧在面板里实时高亮
- 同一 URL 只允许一个代理,冲突时一键跳转
每轮回放,ID 自动刷新
在「{ } 变量」面板里一行定义一个变量,在帧数据里用 ${name} 引用。每次回放开始时重新求值,同一轮内所有帧保持一致。
${random:N}N 位随机数字${randomStr:N}N 位随机字母数字${uuid}v4 UUID;${timestamp}毫秒时间戳
批量改数据,一次搞定
「⇄ 查找」在当前请求的所有帧中搜索,支持正则和大小写区分,点击匹配项直接定位到对应帧,一键全部替换。
- 只作用于当前会话,其他请求不受影响
- 「导出」把当前 SSE 数据存为 JSON,「导入」随时恢复
- 把一套 mock 数据分享给同事,对方导入即可复现
多套 mock 预设,随时切换
左侧列表的每一项都是一个 SSE 会话。重命名后就是一套具名的 mock 预设,复制一份就能为同一个接口准备不同场景。
- 重命名、复制、删除;双击标题即可改名
- 帧、编辑、变量、代理开关全部持久化到
chrome.storage.local - 关闭 DevTools 或重启浏览器,数据都不会丢
从 Chrome 应用商店一键安装
不到一分钟就能开始调试 SSE。
打开商店页面
点击下方按钮,进入 Chrome 应用商店中的 SSE Monitor 详情页。
添加至 Chrome
点击「添加至 Chrome」,在弹窗中确认「添加扩展程序」。
开启监控
点击工具栏中的扩展图标,确认 Monitoring 开关已打开(默认开启)。
打开面板
在目标页面按 F12 / ⌥⌘I,切换到 SSE Monitor 面板,刷新页面即可看到 SSE 请求。
无法访问商店?下载离线包安装
适合内网环境或需要固定版本的场景,下载 zip 后以开发者模式加载。
chrome-sse-plugin-1.5.0.zip
离线安装包 · v1.5.0 · 约 102 KB · Manifest V3
下载并解压
点击上方按钮下载 zip,解压到一个不会被删除的目录(删除目录后扩展会失效)。
打开扩展管理页
在地址栏输入 chrome://extensions/(Edge 为 edge://extensions/)。
开启开发者模式
打开页面右上角的「开发者模式」开关。
加载扩展
点击「加载已解压的扩展程序」,选择解压后包含 manifest.json 的目录。
升级时下载新版本 zip,覆盖原目录后在扩展管理页点击「重新加载」即可,已保存的会话数据不会丢失。
常见问题
看不到 SSE 请求?
确认弹窗里 Monitoring 已开启。拦截只对开启后发起的新连接生效,刷新页面再试一次。
代理开关是灰色的?
至少需要先捕获 1 帧才能启用代理;或同一 URL 已有其他会话开启了代理,按提示跳转即可。
编辑后页面没拿到新数据?
确认代理已打开,并且页面重新发起了同一个 URL 的 SSE 请求。
我的数据会被上传吗?
不会。所有会话、帧和变量只保存在本机的 chrome.storage.local 中,扩展不向任何服务器发送数据。