在线工具AI 产品汇

工具箱 › 开发 › WebSocket 测试

WebSocket 连接测试

在浏览器里连接一个 WebSocket 地址:记录握手耗时、收到的每条消息、往返延迟与关闭码,日志带时间戳,可自动回显验证双向链路。浏览器不暴露握手头与 ping/pong 帧,页面会明确说明看不到的部分。

未连接状态
—握手耗时
—往返延迟
0收到消息


浏览器能看到的和看不到的

能看到:连接是否成功、握手花了多久、收到了哪些帧、关闭时的状态码与原因、服务端协商出来的子协议(<code>protocol</code>)。

看不到:握手请求头(<code>Sec-WebSocket-Key</code> 等)、TLS 证书细节、ping/pong 帧 —— 这些浏览器自己处理掉了,页面里读不到。想看握手过程请用 <code>websocat</code> / <code>wscat</code>,或者开发者工具 Network 面板里的 WS 帧。

为什么失败只写一句「连接失败」

浏览器的 <code>error</code> 事件按规范不给具体原因(免得泄露内网信息),所以到底是 DNS 失败、证书不对、被墙还是服务端拒绝,页面分辨不出来。

能确定的是关闭码:<code>1000</code> 正常关闭、<code>1001</code> 对端离开、<code>1006</code> 异常断开(没收到关闭帧,多半是没连上)、<code>1011</code> 服务端内部错误。要确定原因得配合服务端日志或命令行工具。

别拿它发敏感内容

默认填的是第三方公共回显服务:消息会原样送到对方服务器再送回来,对方看得到内容、也看得到你的出口 IP。测自己的服务请换成自己的地址。

WebSocket 不受同源策略限制(不需要服务端配 CORS 响应头),但会被页面的 CSP <code>connect-src</code> 拦住 —— 被拦时表现和连不上一样,这里也分辨不出来。

常见问题

往返延迟准吗?

只是「发送 → 收到同一条内容」的本机计时,含网络与服务端处理时间,测多次比单次稳。前提是服务端会把内容原样送回来,很多业务 WebSocket 是广播或单向的,那就测不了。

支持二进制消息吗?

本页只发文本,收到的二进制会在日志里标成字节数、不做解析。真的要测二进制帧,用命令行工具更省事。

地址填对了吗,为什么还失败

先确认协议对(页面要求 ws:// 或 wss://),再确认端口通:公网服务多半只开 443 走 wss://,明文 ws:// 常被中间盒子拦。公共回显服务本身也可能不可用,换一个地址再试。

会不会把我的代码发出去

不会。这页没有后端,只有你点了连接才会向目标地址发一次 WebSocket 握手 —— 发给谁由你填的地址决定。