要在 Spring Boot 中配置并开启 WebSocket 功能,可以按照以下步骤进行:
- 添加 spring-boot-starter-websocket 依赖到 pom.xml 文件中:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
- 在 Spring Boot 应用程序的入口类上添加 @EnableWebSocket 注解:
@SpringBootApplication
@EnableWebSocket
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
- 创建一个 WebSocket 处理器(handler),并使用 @Component 注解将其标记为 Spring Bean。这个处理器将处理所有与客户端之间的通信。
@Component
public class MyHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 处理接收到的消息,并发送回复消息给客户端。
String payload = message.getPayload();
session.sendMessage(new TextMessage("Received: " + payload));
}
}
- 创建一个 WebSocket 配置类,并实现 WebSocketConfigurer 接口。在该类中,将创建一个 WebSocket 处理器映射到特定路径上。
@Configuration
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private MyHandler myHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
// 映射 /my-websocket 路径到 MyHandler 处理器上。
registry.addHandler(myHandler, "/my-websocket");
}
}
- 在客户端中,使用 JavaScript 或其他语言的 WebSocket 客户端库连接到服务器。
var socket = new WebSocket("ws://localhost:8080/my-websocket");
socket.onopen = function(event) {
console.log("WebSocket opened.");
};
socket.onmessage = function(event) {
console.log("Received message: " + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket closed.");
};
- 启动应用程序,并在浏览器中打开控制台。连接到 WebSocket 服务器后,在控制台中输入一些文本并发送。应该能够看到从服务器返回的响应消息。
以上就是在 Spring Boot 中配置并开启 WebSocket 功能的步骤。