要在Spring Boot中整合WebSocket,需要进行以下步骤:
1.创建一个Spring Boot项目:
- 使用Spring Initializr创建一个新的Spring Boot项目。
- 选择适当的Spring Boot版本和依赖项。
- 添加WebSocket依赖项,如
spring-boot-starter-websocket
。
2.创建WebSocket配置类:
- 创建一个Java类,用于配置WebSocket。
- 使用
@Configuration
注解标记该类为配置类。
- 使用
@EnableWebSocket
注解启用WebSocket支持。
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/websocket")
.setAllowedOrigins("*");
}
}
在上述示例中,我们创建了一个WebSocketConfig
类,并实现了WebSocketConfigurer
接口。在registerWebSocketHandlers
方法中,我们注册了一个自定义的WebSocket处理程序MyWebSocketHandler
,并指定了WebSocket的访问路径为/websocket
。
3.创建WebSocket处理程序:
- 创建一个Java类,用于处理WebSocket连接和消息。
- 继承
TextWebSocketHandler
类,并重写相应的方法。
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 处理收到的消息
String receivedMessage = message.getPayload();
// 发送消息给客户端
session.sendMessage(new TextMessage("Received: " + receivedMessage));
}
}
在上述示例中,我们创建了一个MyWebSocketHandler
类,并继承了TextWebSocketHandler
类。在handleTextMessage
方法中,我们处理收到的消息,并发送一个回复消息给客户端。
4.创建WebSocket客户端:
- 在前端创建一个WebSocket客户端,用于与后端建立WebSocket连接并发送/接收消息。
const socket = new WebSocket('ws://localhost:8080/websocket');
socket.onopen = function() {
console.log('WebSocket connection established.');
socket.send('Hello, WebSocket!');
};
socket.onmessage = function(event) {
console.log('Received message: ' + event.data);
};
在上述示例中,我们创建了一个WebSocket对象,并指定了WebSocket服务器的URL。在连接建立后,我们发送一条消息给服务器,并在收到消息时进行处理。
5.运行应用程序:
- 启动Spring Boot应用程序。
- 打开浏览器,访问前端页面,查看控制台输出。
通过以上步骤,我们成功地在Spring Boot中整合了WebSocket,并实现了基本的消息收发功能。