Spring Boot和WebSocket来实现即时消息的基本步骤:
一、添加Spring Boot WebSocket依赖:
在项目的 pom.xml 文件中添加 Spring Boot WebSocket 的依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
二、创建WebSocket配置类:
创建一个WebSocket配置类,通常是一个带有@Configuration注解的类,并继承自 WebSocketConfigurer
或 AbstractWebSocketMessageBrokerConfigurer
。
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler(), "/ws").setAllowedOrigins("*");
}
@Bean
public WebSocketHandler myWebSocketHandler() {
return new MyWebSocketHandler();
}
}
三、创建WebSocket处理器:
创建一个WebSocket处理器类,实现 WebSocketHandler
接口,处理WebSocket的消息和连接。
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 处理收到的文本消息
String payload = message.getPayload();
session.sendMessage(new TextMessage("Received: " + payload));
}
}
四、在Controller中处理WebSocket连接:
在你的Controller中添加一个方法来处理WebSocket连接的握手请求。
@Controller
public class WebSocketController {
@GetMapping("/websocket")
public String getWebSocketPage() {
return "websocket.html"; // 返回WebSocket页面
}
}
五、创建WebSocket页面:
在resources/static目录下创建一个WebSocket页面(比如websocket.html),用于展示WebSocket连接和发送消息。
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Example</title>
<script>
var socket = new WebSocket("ws://" + window.location.host + "/ws");
socket.onopen = function() {
console.log("WebSocket连接已打开");
};
socket.onmessage = function(event) {
console.log("Received: " + event.data);
};
socket.onclose = function() {
console.log("WebSocket连接已关闭");
};
function send() {
var message = document.getElementById("message").value;
socket.send(message);
}
</script>
</head>
<body>
<input type="text" id="message" />
<button onclick="send()">发送</button>
</body>
</html>
六、运行应用程序:
启动Spring Boot应用程序,并访问 http://localhost:8080/websocket
来打开WebSocket页面。