WebSocket 的卓越之处在于,它真正实现了“全双工”双向通信协议。传统的 HTTP 协议流程大家都很熟悉:客户端先发送一个请求,服务器返回响应,随后连接立即关闭,双方各自断开。而在 WebSocket 模式下,一旦客户端与服务器建立连接,这条通道就会长期保持在线,不再需要“一问一答”的交互模式。任意时刻,客户端和服务器都能主动向对方“推送”数据,这才是名副其实的实时通信。

那么 WebSocket 与 HTTP 究竟有何关联?实际上,WebSocket 的握手阶段是基于 HTTP 协议完成的。客户端会在请求头中加入 Upgrade 字段,向服务器表明:“我想将协议升级为 WebSocket。” 服务器同意后,双方就会剥离 HTTP 协议的“外壳”,转而采用 WebSocket 自身的数据格式,在一个长期有效的 TCP 通道中自由传输数据。
使用 Node.js 搭建 WebSocket 服务
安装 ws 模块
若要在 Node.js 环境下快速构建 WebSocket 服务,最简便的方式是使用 ws 这个包。
npm i ws
代码示例(仅供参考)
以下是一个最基础的服务端与客户端通信示例,帮助你快速理解整体流程。
// 引入WebSocket模块
const WebSocket = require('ws');
// 创建WebSocket服务器,监听端口3001
const server = new WebSocket.Server({ port: 3001 });
// 当有客户端连接时触发
server.on('connection', (socket) => {
console.log('Client connected');
// 处理收到的消息
socket.on('message', (data) => {
console.log(`Received: ${data}`);
// 广播消息给所有连接的客户端
server.clients.forEach((client) => {
if (client !== socket && client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
});
// 处理连接关闭
socket.on('close', () => {
console.log('Client disconnected');
});
});
调试 WebSocket 接口
接口编写完成后,自然需要进行调试。调试工作不仅在于确认能否连通,更重要的是验证数据传输的准确性以及性能是否达到预期。这里重点介绍两款主流的 WebSocket 调试工具:Apifox 和 Postman。
使用 Apifox 调试 WebSocket 服务

先来说说 Apifox,它的一大亮点是自带中文界面,而且整体交互逻辑十分贴合国内开发者的使用习惯。
创建 WebSocket 请求
如果你想用 Apifox 连接 WebSocket,首先创建一个 HTTP 项目,然后在项目中新建一条 WebSocket 接口,填写必要参数即可。

新建完成后,填入服务端的连接地址,点击连接按钮即可建立连接。

发送消息
连接成功后,在 Message 区域输入要发送的内容,服务端便可立即接收。

传递参数
你还可以在 URL 上添加查询参数,支持 string、integer、number、array 等多种类型,这些参数会随请求一并发送到服务端。

保存请求
配置完成后记得保存,方便下次直接使用。

运行 WebSocket 请求
连接服务
点击“连接”按钮,Apifox 会提示连接已成功建立。

服务端也会输出连接成功的日志信息。

发送 WebSocket 请求
连接之后即可开始正式通信。Apifox 支持同时发送 Message 和 Params,点击发送按钮即可完成发送。

与 WebSocket 服务通信
发送数据后,服务端不仅能够接收,还能主动向客户端推送数据。下面的示例中,我让服务端每隔一秒发送一次当前时间戳。如果你想查看详细的连接日志,点击对应的连接消息即可。

断开 WebSocket 连接
如果不再需要连接,直接点击“断开”按钮即可。

为什么我选择 Apifox 而不是 Postman
接下来聊聊另一款经典工具——Postman。虽然 Postman 功能全面,但在 WebSocket 调试这一场景下,Apifox 确实有不少更便利的地方。
Apifox 与 Postman 的对比
| Apifox | Postman |
|---|---|
| 基于云平台,浏览器即可使用,同时也提供客户端版本。 | 必须安装独立应用程序,更换设备需要重新安装。 |
| 界面简洁,上手快速,中文支持优秀。 | 界面相对复杂,偏向代码操作,存在一定学习成本。 |
| 支持团队协作与项目管理,方便共享接口和文档。 | 处理大量数据时可能出现资源占用过高,影响运行速度。 |
| 自定义选项非常灵活,几乎不受限制。 | 自定义选项有限,例如外部变量、响应头、脚本等。 |
| 支持在线文档分享,可设置密码和自定义域名。 | 不支持在线文档功能。 |
| 内置自动 Mock 人性化数据,辅助调试。 | Mock 数据功能需要付费使用。 |
客观来说,从对比表格可以看出,Apifox 在灵活性、中文支持、团队协作、Mock 能力等方面确实更具优势。如果你正被 Postman 的汉化问题困扰,或者想寻找一款更称手的工具,Apifox 无疑是一个值得尝试的选择。

