springboot整合websocket的具体使用案例
时间: 2023-07-01 08:29:32 浏览: 120
下面是一个简单的Spring Boot整合WebSocket的使用案例:
1. 创建一个Spring Boot项目,添加WebSocket和Thymeleaf依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
```
2. 创建一个WebSocket配置类:
```java
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), "/websocket").setAllowedOrigins("*");
}
}
```
3. 创建一个WebSocket处理器:
```java
public class MyWebSocketHandler extends TextWebSocketHandler {
private List<WebSocketSession> sessions = new ArrayList<>();
@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 s : sessions) {
s.sendMessage(new TextMessage(session.getId() + ": " + message.getPayload()));
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
}
}
```
4. 创建一个Thymeleaf视图:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>WebSocket Demo</title>
</head>
<body>
<h1>WebSocket Demo</h1>
<div>
<label for="msg">消息:</label>
<input type="text" id="msg"/>
<button onclick="sendMsg()">发送</button>
</div>
<div id="msgs"></div>
<script>
var socket = new WebSocket("ws://localhost:8080/websocket");
socket.onopen = function (event) {
console.log("连接成功!");
};
socket.onmessage = function (event) {
var msgs = document.getElementById("msgs");
var msg = document.createElement("p");
msg.innerText = event.data;
msgs.appendChild(msg);
};
socket.onclose = function (event) {
console.log("连接关闭!");
};
function sendMsg() {
var msg = document.getElementById("msg").value;
socket.send(msg);
}
</script>
</body>
</html>
```
5. 运行项目,访问Thymeleaf视图,在浏览器的控制台可以看到连接成功的日志。在输入框中输入消息,点击发送按钮,可以在页面上看到接收到的消息。
以上就是一个简单的Spring Boot整合WebSocket的使用案例,可以根据实际需求进行修改和扩展。
阅读全文
相关推荐
















