最近在调一个实时推送的项目,后端接口用的是WebSocket,刚开始直接用浏览器控制台瞎试,结果连都连不上,折腾半天才发现握手参数写错了。后来同事丢给我几个WebSocket客户端测试工具,一试才发现真省事。今天就把我自己用过的几款整理出来,顺便说说怎么连、怎么发消息、怎么看返回,给同样在调接口的朋友省点时间。不管是做后端、前端还是测试,只要碰到WebSocket,这些工具基本都能帮上忙。

如果你不想装软件,直接用在线版最省事。像WebSocket客户端测试工具里比较出名的WebSocket King,打开网页填上地址就能连。我第一次用的时候,地址写的ws://echo.websocket.org,点连接直接成功,然后下面输入框发个hello,右边立马回显,特别直观。还有一个叫PieSocket的在线工具,界面更简单,适合只测连通性的场景。不过在线工具有个坑,有些公司内网地址外网访问不到,那就只能换本地软件。另外浏览器本身对ws和wss支持不一样,https页面里必须用wss,这个我踩过雷,大家注意。
在线工具的好处是跨平台,Mac、Windows、甚至平板都能用。缺点也明显,历史记录存不住,关掉页面就没了。所以临时测一下可以,长期调接口还是建议往下看本地软件。

说到本地WebSocket客户端测试工具,Postman其实也能测,但很多人不知道入口在哪。新版本Postman左上角New选WebSocket,然后填地址就能连,发消息、看帧、保存请求都行。不过Postman稍微有点重,启动慢。另一个轻量级的是Insomnia,界面清爽,支持WebSocket和SSE,我平时更爱用它。还有专门做WebSocket调试的软件叫Socket.io Tester,不过那个主要针对socket.io协议,普通ws不一定适用,别搞混了。
如果你用VS Code,可以装个叫WebSocket Client的插件,直接在编辑器里发请求,不用切窗口,写代码的时候顺手就测了。这个我强烈推荐给前端朋友,省得来回切换。但插件功能相对简单,复杂场景还是得靠独立客户端。
工具选好了,操作其实大同小异。以Postman为例,连接成功后,下面有个Message输入框,可以发文本、JSON、二进制。发JSON的时候记得选JSON格式,不然后端可能解析不了。返回的数据会按时间倒序显示,点开每条能看到具体内容。有个细节要注意,有些WebSocket客户端测试工具默认不显示心跳帧,你得在设置里勾选显示ping/pong,不然会以为连接断了。我一开始就因为这个,反复重连了好几次,后来才发现是心跳没显示。
另外发消息的时候可以加自定义请求头,比如Authorization、Cookie,这个在调需要登录的接口时特别有用。如果连不上,先检查地址协议对不对,再看请求头有没有漏,最后看服务端有没有开跨域。一般就这几个原因。

第一个坑,ws和wss混用。本地开发用ws没问题,但线上必须是wss,否则浏览器会拦截。第二个坑,连接超时。有些工具默认超时时间短,网络稍微慢点就断,去设置里把超时改长点。第三个坑,消息格式不对。比如后端要二进制,你发文本,那就一直报错。这时候用工具里的十六进制模式发发看。第四个坑,代理。公司网络走代理的话,工具里要配代理地址,不然连不上外网。
最后说下,WebSocket客户端测试工具只是辅助,真正调接口还得结合后端日志一起看。工具能帮你确认连接通不通、消息发没发出去,但具体业务逻辑对不对,还得看服务端返回。多试几个工具,找到顺手的就行,不用纠结哪个最好。