Springboot整合websocket
时间: 2024-02-02 20:05:07 浏览: 29
好的,我来回答你的问题。在Spring Boot中,通过使用Spring Websocket模块可以方便地实现对WebSocket的支持。首先需要在pom.xml文件中添加对Spring WebSocket模块的依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
之后,在Spring Boot应用程序的主类上添加@Configuration和@EnableWebSocket注解,启用WebSocket支持:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/my-websocket-handler");
}
// ...
}
```
在上面的代码中,我们注册了一个名为MyWebSocketHandler的自定义WebSocket处理程序,并将其映射到URI /my-websocket-handler上。可以根据自己的需求进行调整。接下来,需要编写WebSocket处理程序类MyWebSocketHandler:
```
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 处理WebSocket消息
System.out.println("接收到消息:" + message.getPayload());
session.sendMessage(new TextMessage("收到消息"));
}
// ...
}
```
在上面的代码中,我们通过继承TextWebSocketHandler类实现了一个自定义的WebSocket处理程序。可以在其中重写handleTextMessage方法来处理WebSocket消息。在这个例子中,我们只是简单地打印出接收到的消息,并回复一个“收到消息”的响应。最后,可以通过JavaScript代码,发送和接收WebSocket消息:
```
var socket = new WebSocket("ws://localhost:8080/my-websocket-handler");
socket.onopen = function() {
socket.send("Hello, WebSocket!");
};
socket.onmessage = function(event) {
console.log("收到消息:" + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket已关闭,状态码:" + event.code);
};
```
在上面的代码中,我们创建了一个WebSocket连接,并在连接打开后发送了一条消息。当收到服务器的响应时,会将响应内容打印到浏览器的控制台中。当WebSocket连接关闭时,也会在控制台中打印出相应的状态码。以上就是Spring Boot整合WebSocket的基本过程。