spring-boot-starter-websocket入门demo
时间: 2023-07-09 10:53:03 浏览: 89
好的,下面是一个简单的 Spring Boot WebSocket 入门 demo:
1. 首先,在 pom.xml 文件中引入 `spring-boot-starter-websocket` 依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建一个简单的 WebSocket 处理器:
```java
@Component
public class WebSocketHandler extends TextWebSocketHandler {
private final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
session.sendMessage(new TextMessage("连接成功!"));
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
for (WebSocketSession webSocketSession : sessions) {
webSocketSession.sendMessage(new TextMessage("客户端说:" + message.getPayload()));
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
}
}
```
3. 创建 WebSocket 配置类:
```java
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private WebSocketHandler webSocketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(webSocketHandler, "/ws").setAllowedOrigins("*");
}
}
```
4. 编写一个简单的页面来测试 WebSocket:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>WebSocket</title>
</head>
<body>
<h1>WebSocket Demo</h1>
<div>
<input type="text" id="input"/>
<button onclick="send()">发送</button>
</div>
<div id="output"></div>
<script>
var socket = new WebSocket("ws://localhost:8080/ws");
socket.onmessage = function(event) {
var output = document.getElementById("output");
output.innerHTML += "<p>" + event.data + "</p>";
};
function send() {
var input = document.getElementById("input");
socket.send(input.value);
input.value = "";
}
</script>
</body>
</html>
```
5. 运行程序,访问 http://localhost:8080/index.html,打开浏览器控制台,输入命令 `socket.send("Hello, WebSocket!")`,即可看到页面上显示出 "客户端说:Hello, WebSocket!"。
希望这个 demo 能帮助到你。