Spring stomp websocket 接收前端请求
时间: 2023-06-26 11:06:28 浏览: 121
在使用 Spring Stomp WebSocket 实现前后端交互时,可以通过注解 `@MessageMapping` 来接收前端发送的请求。
具体步骤如下:
1. 在 Spring Boot 应用中添加对 WebSocket 的支持,可以使用 Spring Boot 自带的 `spring-boot-starter-websocket` 依赖,或者手动添加 `spring-websocket` 和 `spring-messaging` 依赖。
2. 创建一个处理 WebSocket 消息的控制器类,并在该类中定义一个或多个方法来处理接收到的消息。例如:
```java
@Controller
public class WebSocketController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) {
return new Greeting("Hello, " + message.getName() + "!");
}
}
```
在上面的例子中,我们使用 `@MessageMapping` 注解来指定处理 `/hello` 路径的消息,并通过 `@SendTo` 注解将处理结果发送到 `/topic/greetings` 路径下的所有订阅者。
3. 在前端页面中使用 Stomp.js 或 SockJS 来连接 WebSocket 并发送消息。例如:
```javascript
var socket = new SockJS('/websocket');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/greetings', function(greeting) {
console.log('Received: ' + greeting);
});
stompClient.send('/hello', {}, JSON.stringify({ 'name': 'World' }));
});
```
在上面的例子中,我们使用 `SockJS` 连接到 `/websocket` 路径下的 WebSocket 服务,并使用 `Stomp` 协议来发送和接收消息。我们订阅了 `/topic/greetings` 路径下的消息,并在发送消息时指定了 `/hello` 路径。
4. 运行应用程序,打开前端页面,即可通过 WebSocket 接收前端请求并进行处理。
阅读全文