如何通过Postman向Spring Boot的STOMP(WebSocket)后端发送消息?
如何用Postman正确发送STOMP消息到Spring Boot后端
1. 建立WebSocket连接
- 打开Postman,新建WebSocket请求
- 输入后端WebSocket端点(比如官方示例的
ws://localhost:8080/gs-guide-websocket) - 点击Connect,确认状态显示为Connected
2. 完成STOMP握手(核心步骤)
STOMP必须先完成CONNECT握手,否则消息会被后端忽略:
- 在消息输入框切换到STOMP类型
- 输入以下CONNECT帧内容:
CONNECT accept-version:1.2,1.1,1.0 heart-beat:10000,10000 ^@
注意:最后一行的
^@是ASCII空字符,代表帧结束,可通过Ctrl+Shift+@在Postman中输入
- 点击Send,收到后端返回的
CONNECTED帧即表示握手成功
3. 发送业务消息
以官方示例的/app/hello目的地为例:
- 保持STOMP类型,输入SEND帧:
SEND destination:/app/hello {"name":"Postman Test"} ^@
- 确保
destination与后端@MessageMapping注解的路径完全匹配,消息体格式符合后端接收要求(官方示例需带name字段的JSON) - 点击Send,此时后端控制器即可捕获并处理请求
4. 订阅接收响应(可选)
若要接收后端广播的响应(比如官方示例的/topic/greetings),发送SUBSCRIBE帧:
SUBSCRIBE id:sub-1 destination:/topic/greetings ^@
id为订阅唯一标识,可自定义字符串- 发送后,后端处理完消息会将响应推送至该订阅地址,Postman会收到返回的消息
常见问题排查
- 未发送CONNECT帧:直接发SEND消息会被后端丢弃
- 帧格式错误:头部与消息体之间必须空一行,结尾必须加
^@ - 目的地路径错误:需严格匹配后端
@MessageMapping或@SendTo的路径 - 消息体格式不匹配:要和后端接收的DTO结构一致
内容的提问来源于stack exchange,提问作者Roberto
相关产品推荐
相关产品推荐

