springboot整合websocket的demo
时间: 2023-09-14 22:07:36 浏览: 51
很高兴回答你的问题。以下是一个简单的Spring Boot整合WebSocket的demo:
首先,我们需要添加依赖项:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
接下来,我们创建一个WebSocketHandler:
```
@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
private List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
@Override
public void handleTextMessage(WebSocketSession session, TextMessage message)
throws IOException {
for (WebSocketSession s : sessions) {
s.sendMessage(message);
}
}
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
sessions.add(session);
}
}
```
然后,我们需要创建一个WebSocketConfigurer:
```
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private MyWebSocketHandler myWebSocketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myWebSocketHandler, "/my-websocket")
.setAllowedOrigins("*");
}
}
```
最后,我们需要在Controller中注入WebSocketSession并使用它:
```
@Controller
public class MyController {
@Autowired
private MyWebSocketHandler myWebSocketHandler;
@GetMapping("/send-message")
public ResponseEntity<String> sendMessage(@RequestParam("msg") final String msg) {
myWebSocketHandler.sessions.forEach(s -> {
try {
s.sendMessage(new TextMessage(msg));
} catch (IOException e) {
e.printStackTrace();
}
});
return ResponseEntity.ok(msg);
}
}
```
以上就是一个简单的Spring Boot整合WebSocket的demo了。希望对你有所帮助!