springboot整合WebSocket
时间: 2023-09-17 13:07:48 浏览: 85
Spring Boot提供了非常方便的方式来整合WebSocket,以下是步骤:
1. 添加依赖
在pom.xml中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建WebSocket处理程序
创建一个类来处理WebSocket请求,它应该扩展Spring的WebSocketHandler类,并实现以下方法:
- afterConnectionEstablished():当WebSocket连接建立时调用。
- handleMessage():当WebSocket接收到消息时调用。
- afterConnectionClosed():当WebSocket连接关闭时调用。
以下是一个例子:
```
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
private List<WebSocketSession> sessions = new ArrayList<>();
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
}
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
for (WebSocketSession s : sessions) {
s.sendMessage(message);
}
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
sessions.remove(session);
}
}
```
3. 配置WebSocket
在Spring Boot中,可以通过@EnableWebSocket注释启用WebSocket支持。以下是一个例子:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private MyWebSocketHandler myWebSocketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler, "/my-websocket");
}
}
```
在这里,我们将MyWebSocketHandler类注册为WebSocket处理程序,并将其映射到/my-websocket路径。
4. 测试WebSocket
最后,我们可以使用JavaScript代码测试WebSocket连接:
```
var webSocket = new WebSocket("ws://localhost:8080/my-websocket");
webSocket.onmessage = function(event) {
console.log(event.data);
};
webSocket.send("Hello, World!");
```
这将在控制台中输出“Hello, World!”。您还可以使用其他WebSocket客户端工具来测试连接。
以上就是Spring Boot整合WebSocket的步骤。
阅读全文