跳到主要内容

WebSocket 接口

WebSocket 是一种在单个 TCP 连接上进行全双工通信的 API 技术。相比于传统的 HTTP 请求,WebSocket 具有更低的延迟和更高的效率。它适用于需要长时间保持连接并实时传输数据的场景,例如在线游戏、实时聊天等。

注意
  • Apifox 版本号大于等于 2.2.32 才支持 WebSocket 接口管理。

新建 WebSocket 接口

你可以在 HTTP 项目中新建 WebSocket 接口。

  1. 点击左侧的 + 按钮,选择 新建 WebSocket 接口(Beta)

  2. 输入 WebSocket 服务器的 URL,以 wswss 开头。

  3. 点击 连接

  4. 若要断开 WebSocket 接口的连接,请点击 断开

注意
  • 推荐使用 Apifox 客户端版,以使用 WebSocket 接口的完整功能和最佳体验。

发送消息

建立 WebSocket 连接后,你可以在 Message 标签下撰写消息。

除了直接撰写 TextJSONXMLHTML 等文本格式的消息之外,还可以通过 Base64Hexadecimal 来撰写二进制格式的消息。

编辑器会根据所选的消息格式,对消息内容进行语法高亮。如果消息是 JSONXMLHTML 格式,还可以对输入的内容进行格式化操作。

查看消息

下方的 Messages 按照时间顺序集中展示连接状态、发送的消息、收到的消息。

点击单条消息,则可以在右侧查看消息详情:

  • 如果消息是文本格式,默认会显示格式化后的消息,也可以手动切换消息格式和编码。

  • 如果消息是二进制格式,默认会显示消息的 Hexdump,也可以查看经过 Base64 编码后的消息和原始消息。

添加握手请求参数

你也可以自定义 WebSocket 握手时所需要传递的参数,比如 ParamsHeadersCookies,以满足鉴权或其他复杂场景。

注意
  • 建立连接后无法修改握手请求的参数,必须在建立连接之前或者断开连接之后进行配置。

使用变量

你可以在 WebSocket 连接的握手和消息中使用 Apifox 变量。

有关如何使用变量的更多信息,请参阅 环境变量/全局变量/临时变量

接口文档

你可以对 Websocket 接口设定 状态责任人标签,还可以用 Markdown 格式撰写详细的接口说明。

当然,你可以将 WebSocket 的接口文档分享到团队外部,然后直接在浏览器中查看。

保存接口

在完成调试后,你可以点击 保存 按钮将 WebSocket 接口保存到 HTTP 项目的目录树中,以便团队内的其他成员进行调试或查看接口文档。

常见问题

常见问题解答
  • 为什么没有校验响应?

WebSocket 请求在建立连接时,正常情况下 HTTP 状态码一定是 101,表示协议已升级。因此,校验状态码意义不大。


  • 没有 Auth 选项卡,该如何对接口鉴权?

目前推荐两种方式进行 WebSocket 接口鉴权:

  1. 在建立连接时,用ParamHeaderCookie中的某个字段传递鉴权信息;
  2. 在发送消息时,用消息的某个字段传递鉴权信息。

  • Apifox 的 WebSocket 支持前置/后置脚本、断言吗?

暂不支持,已在设计开发中。


  • 支持请求示例和响应示例吗?

暂不支持,后续会评估迭代。


  • 为什么没有 Mock?

当前不支持 WebSocket 的 API 定义,因此无法根据定义生成消息体。后续会评估迭代。