工具2026-04-227 min
WebSocket 調試器怎麼做:websocket 的設計、實作、用途與用法
多連線、訊息模板、二進位傳送、會話保存與日誌檢索,面向實際調試。
這篇文章按設計、實作和用法完整展開,可以直接往下讀。
開啟工具關於正文
這篇文章按完整正文來整理,從背景、實作到用法都可以串起來讀。
正文
WebSocket 调试最麻烦的是什么
01WebSocket 调试的难点,不只是“能不能连上”,而是连上之后要怎么发消息、怎么看日志、怎么留存会话。很多时候你还要同时调多个连接,或者在文本、JSON、二进制之间切换。
所以我把它做成了一个多标签工作台,目标是让调试像开几个终端一样自然。
參考檔案src/app/tools/websocket/WebsocketClient.tsxsrc/app/tools/websocket/page.tsx
为什么要拆成几个面板
02一个 WebSocket 工具如果只有一块大输入框,通常不够用。真正调试时,你会同时关心连接状态、消息模板、发送内容、日志列表、统计信息和二进制编码。
所以我把它拆成连接面板、消息编辑器、日志视图、统计面板、二进制构造器和会话管理几个部分。每块都小一点,组合起来反而更好用。
參考檔案src/app/tools/websocket/components/ConnectionPanel.tsxsrc/app/tools/websocket/components/MessageComposer.tsxsrc/app/tools/websocket/components/LogViewer.tsxsrc/app/tools/websocket/components/SessionManager.tsx
实现和用法
03实现上我用 `useWebSocket` 和 `useMultiConnection` 去管理连接状态、日志和发送逻辑。这样可以把连接生命周期、消息统计和会话切换拆开,避免一个巨大组件把所有事情都塞在一起。
用法很直接:先输入 WebSocket 地址,再选文本或二进制模式,连接后发消息、看日志,需要时保存会话。对调试 echo 服务、内部推送或者实时通知都很方便。
參考檔案src/app/tools/websocket/hooks/useWebSocket.tssrc/app/tools/websocket/hooks/useMultiConnection.tssrc/app/tools/websocket/hooks/useMessageTemplates.tssrc/app/tools/websocket/hooks/useMessageHistory.ts