Postman 10.17+桌面版才正式支持WebSocket,Web版至今不支持;需用ws://或wss://地址,通过+ New → WebSocket Request创建,连接后注意格式切换与协议帧规范。

Postman 10.17+ 桌面版才能真正创建可用的 WebSocket 连接;旧版本(包括 Web 版)点不到、连不上、发不出,不是你操作错,是压根不支持。
确认 Postman 版本和类型
WebSocket 支持从 v10.17(2023年10月发布)起才正式可用,且仅限桌面应用。Web 版至今未开放该功能,哪怕界面里看到“WebSocket”选项,点击也无响应。
- 打开 Postman → 点击右上角头像 → About Postman,核对版本号是否 ≥
10.17 - 若用的是 Web 版(postman.com/workspaces),必须下载并安装桌面版(postman.com/downloads)
- 曾有用户误信“v8.12 开启实验功能”,实际只是内部 API 调试端点,无法用于真实连接
创建 WebSocket 请求并填写 URL
WebSocket 地址必须以 ws:// 或 wss:// 开头,不能是 http:// 或 https://;路径中若含 Socket.IO 参数(如 EIO=4&transport=websocket),需完整保留。
- 点击左上角 + New → 选择 WebSocket Request(不是 HTTP 请求下拉菜单里的选项)
- URL 输入框左侧下拉菜单选
Raw(原生 WebSocket)或Socket.IO(需服务端明确支持) - 正确示例:
ws://localhost:8080/ws、wss://api.example.com/socket.io/?EIO=4&transport=websocket - 错误写法:
http://localhost:8080/ws(会提示 “Invalid protocol”)、ws://localhost:8080(缺少路径,可能握手失败)
点击 Connect 后没反应?检查三件事
连接卡在 “Connecting…” 或直接报错,大概率不是网络问题,而是协议/配置不匹配。
WebSocket 8.18.2 是该协议规范的一个重要迭代版本,主要优化了连接稳定性与数据传输效率。它通过全双工通信机制,允许客户端与服务器在单一长连接上实时交换数据,大幅降低传统 HTTP 轮询的开销。该版本增强了心跳保活、自动重连及二进制帧传输能力,适用于即时通讯、在线游戏及金融行情推送等低延迟场景,为开发者提供更可靠的实时网络交互基础。
- 服务端是否真在监听 WebSocket?Spring Boot 需配
@EnableWebSocket+WebSocketHandler;原生 Java EE 需@ServerEndpoint注解类 - URL 中的路径是否和服务端注册的 endpoint 完全一致?比如后端写的是
@ServerEndpoint("/chat"),你就不能填ws://…/ws - 若用 Socket.IO,Postman 的
Socket.IO模式要求服务端使用标准 Socket.IO Server(非自定义封装),否则会卡在 handshake 阶段,日志里可能看到Unexpected server response: 404或invalid payload
发送消息前先看清格式开关
Postman 的消息编辑器默认按文本发送,但很多服务端(尤其是 Socket.IO)要求特定帧格式,直接输 {"msg":"hi"} 往往被忽略。
- 消息输入框左下角切换格式:
Text(纯字符串)、JSON(自动加引号和转义)、Binary(Base64/Hex) - Socket.IO 消息必须手动构造协议帧,例如事件触发:
42["chat",{"text":"hello"}]—— 其中42是固定前缀,不能省略 - 原始 WebSocket 若收不到回包,试试在消息末尾加换行符
\n(某些服务端依赖此作为帧边界) - 发送后没响应?别急着重连,先看下方消息时间线里有没有
onOpen或onMessage日志,确认连接是否真建立成功
最容易被忽略的一点:Postman 的 WebSocket 连接不会自动重连,断开后所有已发送消息上下文丢失;调试过程中频繁 Connect/Disconnect 时,记得检查服务端是否因 session 复用或心跳超时拒绝了新连接。










