← 返回博客
网络调试教程

WebSocket 怎么测试?从连接地址到收发消息逐步排查

用 WS/WSS 连接、文本与 JSON 消息示例,说明状态、计数、断开重连和常见失败原因。

实时通知收不到消息时,应分别确认“是否连上服务”“是否发出了正确消息”“服务是否按协议回复”。只看到一个“已连接”状态,不能代替业务消息测试。

WebSocket 测试工具 可以连接 WS/WSS 地址、查看服务推送和连接记录,并发送文本或 JSON。消息会发送到你填写的服务;不要在不了解接收方的情况下放入真实口令或客户数据。

第一步:确认地址、路径与协议

地址需要包含服务端实际监听的路径,例如本站示例服务的 /ws。https://utilcove.com/ws 是 HTTP 地址,WebSocket 连接应使用 wss://utilcove.com/ws。

页面环境 示例地址 使用条件
UtilCove HTTPS 站点 wss://utilcove.com/ws 线上版本已部署示例 Worker
自有服务 你的完整 ws:// 或 wss:// 地址 服务已开启,路径和权限正确

工具会根据当前页面域名填入默认示例地址。在 HTTPS 页面上应使用 WSS,工具会拒绝填写普通 WS。示例地址是否能用还取决于服务是否已部署,不能仅凭输入框里有地址判断它在线。

第二步:连接后先看状态和接收区

填入地址,点击“连接”或按 Enter。状态从“连接中”变为“已连接”后,再观察左侧“服务推送与连接记录”。连接超过 15 秒未成功时,工具会结束等待并提示超时。

本站示例服务在连接时发送一次 hello,之后每秒推送服务器 UTC 时间 serverTime 和该连接的消息计数 count。实际时间和计数会变化;本文示例只说明消息结构。

{
  "type": "connected",
  "message": "hello",
  "count": 1
}

自有服务可以完全没有这段消息。它是否在连接后立即推送、推送哪些字段,取决于你的服务协议。

第三步:发送一条消息并核对回复

在右侧“发送内容”填写下面的练习消息,点击“发送”,也可以使用 Ctrl / ⌘ + Enter:

{"message":"hello"}

工具按原文发送,不会替你验证 JSON 语法或重新编码业务字段。可以发送纯文本;如果服务要求 JSON,需先确认输入是合法 JSON,并符合服务要求的结构。

本站示例服务对文本发送 hello 回复,type 为 reply;它不是任意内容的原样回显,也不是实际聊天系统。count 是服务端该连接的消息计数,包含定时推送,不等于页面右下角的发送次数。

第四步:理解页面记录和计数

页面内容 含义
左侧系统记录 连接、断开和等待状态
接收记录、向下计数 工具实际收到的消息
发送记录、向上计数 工具实际发出的消息
消息里的 count 服务端自定义字段,含义由服务决定

点击“清空记录”会清空页面记录和本地收发计数,不会断开连接,也不会重置服务端状态。当前页面最多保留 500 条记录,超出时移除较早记录;长消息显示会截断,不应把页面日志当作完整归档。

第五步:断开并验证重连

点击“断开”,确认状态恢复“未连接”,然后再连接。本站示例服务会为新连接重新开始计数,首次消息的 count 为 1。

更换地址前先断开旧连接。页面不会自动无限重连,测试结束后也应主动断开,避免后台持续接收消息。

连接失败时怎样缩小范围?

现象 优先检查
地址格式错误 协议是否为 WS/WSS,是否带有 # 或用户名密码
HTTPS 页面使用 WS 被拒绝 改用服务实际支持的 WSS 地址
一直连接中或提示超时 服务是否运行、端口路径是否正确、网络是否可达
很快断开 查看关闭码,结合服务端日志检查权限和协议
已连接但没有业务回复 服务是否要求先鉴权、订阅或发送指定消息

这个工具不提供自定义握手请求头。需要 Authorization 等专用头的接口不能直接照搬命令行客户端连接方式;应按服务端允许的认证方案测试。服务端还可能验证页面的 Origin。

页面端错误通常不会给出完整的服务端原因,定位握手拒绝应同时查看服务日志。使用 Cloudflare Worker 实现示例服务时,可参考 Cloudflare WebSocket 官方文档。

← 查看全部文章