如何用Postman订阅Spring Boot WebSocket主题以接收消息?
在Postman中订阅WebSocket主题的操作步骤
你已经成功连接到ws://localhost:8080/ws,接下来通过STOMP协议发送订阅指令即可接收/topic/public主题的消息,具体操作:
- 连接成功后,在Postman的Message输入区域,选择
STOMP消息类型,构造如下订阅帧:
注意:帧末尾必须添加SUBSCRIBE id: sub-1 destination: /topic/public ^@^@(ASCII空字符,代表帧结束),在Postman中可通过Ctrl+Shift+@(Windows)或Cmd+Shift+@(Mac)输入。 - 发送该帧后,Postman会持续监听
/topic/public主题,一旦有消息发布到该主题,就能在消息列表中收到推送内容。
前端订阅示例(使用stompjs)
如果需要在前端页面实现订阅功能,可使用stompjs库,示例代码如下:
import Stomp from 'stompjs'; // 建立WebSocket连接 const socket = new WebSocket('ws://localhost:8080/ws'); const stompClient = Stomp.over(socket); // 连接成功后订阅主题 stompClient.connect({}, (frame) => { // 订阅/topic/public主题 const subscription = stompClient.subscribe('/topic/public', (message) => { const chatMessage = JSON.parse(message.body); console.log('收到消息:', chatMessage); // 此处可添加消息渲染逻辑,比如展示到页面聊天窗口 }); // 可选:发送用户加入消息 stompClient.send( '/app/chat.addUser', {}, JSON.stringify({ sender: '你的用户名', content: '加入聊天室', type: 'JOIN' }) ); });
测试消息发布(可选)
你可以在Postman中发送消息到/app/chat.sendMessage接口,验证订阅是否生效:
构造SEND帧:
SEND destination: /app/chat.sendMessage content-type: application/json {"sender": "测试用户", "content": "这是一条测试消息", "type": "CHAT"} ^@
发送后,所有订阅了/topic/public的客户端(包括Postman)都会收到这条消息。
内容的提问来源于stack exchange,提问作者Rathna Prashanth
相关产品推荐
相关产品推荐

