spring boot 整合websocekt
时间: 2023-10-08 21:06:01 浏览: 52
Spring Boot 提供了内置的 WebSocket 支持,可以轻松地在应用程序中启用 WebSocket 通信。
以下是整合 WebSocket 的步骤:
1. 添加 Spring Boot WebSocket 依赖
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建 WebSocket 配置类
创建一个 WebSocket 配置类,用于注册 WebSocket 处理程序和处理程序拦截器。
```java
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new WebSocketHandler(), "/websocket").setAllowedOrigins("*");
}
}
```
此处注册了一个名为 WebSocketHandler 的 WebSocket 处理程序,并将其映射到路径 /websocket。setAllowedOrigins("*") 允许任何来源连接。
3. 创建 WebSocket 处理程序
创建一个 WebSocket 处理程序,用于处理来自客户端的 WebSocket 连接和消息。
```java
public class WebSocketHandler extends TextWebSocketHandler {
private static final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
for (WebSocketSession s : sessions) {
s.sendMessage(new TextMessage("收到消息:" + message.getPayload()));
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
}
}
```
此处创建了一个名为 WebSocketHandler 的 WebSocket 处理程序,处理客户端连接建立、消息收发和连接关闭。
4. 创建 WebSocket HTML 页面
在 HTML 页面中创建 WebSocket 连接并发送消息。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebSocket Test</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
var websocket = new WebSocket('ws://' + window.location.host + '/websocket');
websocket.onmessage = function(event) {
$('#messages').append('<p>' + event.data + '</p>');
};
$('#sendBtn').click(function() {
var message = $('#message').val();
websocket.send(message);
$('#messages').append('<p>发送消息:' + message + '</p>');
});
</script>
</head>
<body>
<div>
<input type="text" id="message">
<button id="sendBtn">发送</button>
</div>
<div id="messages"></div>
</body>
</html>
```
此处使用 jQuery 创建 WebSocket 连接并发送消息。
5. 运行应用程序并测试 WebSocket
运行应用程序并访问 WebSocket HTML 页面,输入消息并发送,可以在 HTML 页面中看到收发的消息。
以上就是 Spring Boot 整合 WebSocket 的基本步骤,可以根据实际需求进行扩展和优化。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)