WebSocket 测试客户端

连接 WebSocket、发送消息,并查看收发记录、连接状态、关闭码与服务器返回的关闭原因。

输入完整的 ws:// 或 wss:// 地址。仅当您选择“连接”时,连接才会开始。
输入 WebSocket 地址进行连接。关闭代码
发送一条短信。按 Ctrl+Enter 或 Command+Enter 发送。
消息日志
已发送 0已收到 0

连接并发送消息以开始记录。

此页面不会向 BroBroGo 上传或保存任何内容。地址和消息会从浏览器直接发送到你选择的 WebSocket 服务器。

常见问题

我可以在这里检查哪些 WebSocket 数据?

您可以查看浏览器公开的每条文本或二进制消息、其方向、时间和大小,以及最终关闭代码、原因和干净关闭状态。浏览器页面无法公开网络级片段或 Ping 和 Pong 控制帧。

为什么即使地址在其他地方有效,连接也会失败?

在安全页面上,浏览器可能需要 wss://。服务器还必须接受浏览器连接和页面来源。该客户端无法添加自定义握手标头、绕过证书错误或覆盖服务器的访问规则。

我可以使用生产数据或敏感数据进行测试吗?

尽可能使用合成数据。发送前删除姓名、帐户详细信息、法律记录、财务信息和健康信息。消息将发送到您选择的服务器,其日志记录和保留规则不在本页面的控制范围内。

WebSocket 实时通信与生命周期管理

WebSocket 协议为 Web 应用提供了双向、实时的全双工通信通道。与传统的 HTTP 轮询不同,WebSocket 在一次握手后即可建立持久连接,允许服务器与客户端之间自由推送数据。

在 WebSocket 的生命周期中,连接会经历不同的状态。客户端首先发起连接请求,此时状态为正在连接。一旦握手成功,连接即进入开启状态,双方可以开始收发数据。当任意一方发起关闭请求或网络发生异常时,连接将进入关闭流程,并最终彻底关闭。

协议选择:ws:// 与 wss:// 的安全差异

WebSocket 包含两种协议方案:ws://(未加密)和 wss://(已加密)。

  • ws://:运行在 TCP 之上,数据以明文形式传输,类似于 HTTP。
  • wss://:运行在 TLS/SSL 之上,所有传输数据均经过加密,类似于 HTTPS。

在实际测试中,安全上下文对协议的选择有严格限制。如果测试客户端运行在 HTTPS 安全页面上,浏览器通常会阻止混合内容,这意味着你必须使用 wss:// 地址来确保连接的安全性和合规性。

客户端输入规范与限制

为了确保连接的稳定性和工具的响应速度,客户端对输入参数设定了明确的规范:

  • WebSocket 地址:必须是完整的 ws://wss:// 地址。地址的最大长度限制为 2,048 字符。如果输入的地址不完整,工具会提示“输入完整的 WebSocket 地址,例如 wss://example.com/socket”;若使用了其他协议方案,则提示“使用 ws:// 或 wss:// 地址”;若长度超出限制,则会显示“该地址异常长。将其保留在 2,048 字符下”。
  • 发送消息:支持发送文本消息,每次可发送一条,最大长度限制为 100,000 字符。若在未连接状态下尝试发送,会提示“发送消息之前先连接”;若消息体超过限制,则会提示“该消息异常大。将其保留在 100,000 字符下”。

消息日志与状态输出解析

在测试过程中,客户端会实时记录并展示详细的事件与消息日志:

日志类型/状态 界面显示文本与规则
连接中 正在连接到 ‹address›...
连接成功 连接到 ‹address›
连接超时 服务器未在 10 秒内打开连接。
连接失败 连接失败。检查地址、证书、服务器可用性和浏览器访问规则。
发送文本 标记为“已发送”与“文字”,展示发送的具体文本内容。
接收文本 标记为“已收到”与“文字”,展示接收的具体文本内容。
二进制消息 标记为“二进制消息”,并显示其大小,格式为“‹size› 字节”。
连接关闭 已关闭,代码为 ‹code› (‹clean›)。原因:‹reason›

日志溢出与截断规则

  • 日志条数限制:消息日志最多保留 500 条记录。超出时,较旧的记录会被自动清除,并显示“‹count› 较旧的日志条目已被删除,以保持此页面的响应能力。”。
  • 单条长度限制:单条日志预览最多显示 20,000 字符。超出部分会被截断,并提示“‹count› 此预览中隐藏了更多角色。”。
  • 清除日志:使用清除日志功能只会清空当前屏幕显示的日志条目,不会中断已建立的连接,也不会重置已发送和已收到的计数器。

浏览器环境下的技术局限性

本工具基于浏览器原生的 WebSocket API 构建,因此受限于浏览器的安全沙箱与技术规范:

  1. 无法自定义握手标头:浏览器 API 不允许在建立 WebSocket 连接时自定义 HTTP 握手 Header(例如自定义 User-Agent 或 Authorization 标头)。
  2. 无法绕过安全限制:无法忽略自签名证书错误,也无法突破服务器部署的跨源资源共享(CORS)或其它访问控制策略。
  3. 底层帧不可见:浏览器向应用层屏蔽了底层的网络分片,同时自动处理了 Ping 和 Pong 控制帧,因此用户无法在日志中查看这些底层心跳数据。

隐私保护与数据安全规范

此页面不会向 BroBroGo 上传或保存任何内容。你输入的 WebSocket 地址以及发送的所有消息,都会直接从你的浏览器发送到你指定的 WebSocket 服务器,不经过任何中转服务器。

尽管如此,在进行测试时仍应遵守以下安全规范:

  • 连接前请移除个人身份信息,以及敏感的法律、金融或健康数据。
  • 由于浏览器会把消息直发到你填写的服务器,本页无法控制对方的日志和保留策略,因此请尽可能使用合成的测试数据。

常见问题

我可以在这里检查哪些 WebSocket 数据?

您可以查看浏览器公开的每条文本或二进制消息、其方向、时间和大小,以及最终关闭代码、原因和干净关闭状态。浏览器页面无法公开网络级片段或 Ping 和 Pong 控制帧。

为什么即使地址在其他地方有效,连接也会失败?

在安全页面上,浏览器可能需要 wss://。服务器还必须接受浏览器连接和页面来源。该客户端无法添加自定义握手标头、绕过证书错误或覆盖服务器的访问规则。

我可以使用生产数据或敏感数据进行测试吗?

尽可能使用合成数据。发送前删除姓名、帐户详细信息、法律记录、财务信息和健康信息。消息将发送到您选择的服务器,其日志记录和保留规则不在本页面的控制范围内。

什么是“干净”与“不干净”的连接关闭?

当连接关闭时,日志会显示关闭状态为“干净”或“不干净”。如果连接是通过标准的 WebSocket 关闭握手(双方发送并确认了关闭帧)完成的,则为“干净”;如果是由于网络中断、进程崩溃或服务器异常断开而突然中止的,则为“不干净”。