Hoppscotch实时联调实战:WebSocket与SSE
【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem & Cloud • Web, Desktop & CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch
后端日志显示已推送,前端的监听却安静得像没发生任何事——实时接口联调最容易卡在这。Hoppscotch 是开源 API 开发工具,把 WebSocket(持久双向通道)与 SSE(服务器单向推送,浏览器原生支持)的测试做成了独立面板:连上端点就能收发、看日志。
🚀 30秒跑通第一条消息
- 打开 Hoppscotch 网页版,左侧导航选 Realtime 页面;
- 协议保持默认 WebSocket,端点已填好官方回显服务地址,不用改;
- 点 Connect 等状态变绿,在输入框敲 hello,点 Send,底部日志区立刻多出一行回显,带毫秒级时间戳和方向标记。
跑通之后,把端点换成后端给你的地址就行,后面两个场景都是联调里的高发卡壳。
SSE推送了却收不到,用日志对账定位
SSE 联调最常见的卡壳是:推送方认为发完了,接收方却拿不到任何确认。先把协议选择器切到 SSE,端点填自己的地址,例如http://localhost:3000/events,再点连接。SSE 只有服务器到客户端一个方向,没有发送框,全程都在看:日志区逐行记录事件类型、数据内容和时间戳,拿这三列和后端推送日志对账——日志区一条没有,说明连接本身没建立;有日志但类型对不上,多半是过滤框的锅。连接中途断开时日志区也会留一条断开记录,能帮你区分"压根没连上"和"连上后掉线"。
如果服务器同时推多种事件,在日志区上方的 Event Type 输入框填具体类型,就只显示匹配的事件;清空后恢复全量。没写事件名推送时默认按 data 匹配,保持默认即可看到全部。
双向对话分不清谁丢消息,看分色日志
另一种卡壳正好反过来:两边都在发,却说不清哪一环断了。WebSocket 面板里,日志区对两个方向分色标记,自己发出的和服务器回的都带时间戳,把两列按顺序一对,断在哪一帧一目了然;连接建立、断开这类状态变化同样进日志,排查重连问题时尤其有用。
消息支持文本和 JSON 两种内容类型,选 JSON 后还能一键美化,比如发一条订阅消息:
{ "action": "subscribe", "channel": "news-updates" }输入框旁可以勾选发送后清空,适合连续压几条消息。复现问题后直接复制日志区内容发给后端,省掉来回口述。
进阶项:遇到对应情况再回来查
前面没用到的配置都收在这一节,不用线性读,碰到对应情况再回来查。
- 子协议协商:服务端要求 graphql-ws 这类协议时,在 WebSocket 面板点 Add Protocol 填名称并勾上 Active,否则握手会被拒绝;
- 事件过滤:SSE 的 Event Type 是前端过滤,服务端没发过这个类型时,过滤条件写什么都不会显示;
- 代理开关:跨域报 CORS 时,打开设置面板,找到 Native 下的 Proxy 开关打开并填代理 URL,请求改走代理,绕开浏览器同源限制;
- 长连接保活:长时间测试频繁断开,先查网关空闲超时,WebSocket 是持久连接,服务端没做心跳就会被中间设备掐断;
- 日志留存:日志区支持单条或整段复制,长会话建议定期存一份快照,避免刷新页面丢掉现场。
排障速查:五个高频症状
| 症状 | 根因 | 修复动作 |
|---|---|---|
| 点连接一直转圈后报错 | 协议前缀错配,https 页面用了 ws 地址 | 核对 URL 前缀与页面协议一致 |
| 连接成功但日志一条没有 | 事件类型过滤没匹配,或服务端根本没推 | 清空 Event Type,对照后端推送日志 |
| 发送按钮灰着点不动 | 连接未建立或输入为空 | 先等状态变绿再发送 |
| 浏览器控制台报 CORS | 跨域请求被拦截 | 设置面板打开代理开关 |
| 挂几分钟就断 | 网关空闲超时 | 服务端加心跳,客户端做重连 |
回到开头那个"推了却收不到"的现场:在 SSE 日志区连一行都复现不出来时,问题就不在前端过滤,而在推送侧本身。下一步建议把官方回显端点换成真实服务,完整走一遍"连接—发一条—收一条",保存这组日志作为以后对账的基线。想深挖实现,可以看会话存储 SSESession.ts、WebSocketSession.ts 和日志结构 HoppRealtimeLog.ts。
【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem & Cloud • Web, Desktop & CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考