springboot 集成websocket 案例
时间: 2023-02-21 22:29:54 浏览: 156
下面是一个 Spring Boot 集成 WebSocket 的简单案例:
1. 在项目中添加对 websocket 的支持,例如通过 Maven 在 pom.xml 中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 在 Spring Boot 应用程序中配置 WebSocket,例如:
```
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/websocket")
.setAllowedOrigins("*")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app")
.enableSimpleBroker("/topic");
}
}
```
3. 创建一个消息处理器,例如:
```
@Controller
public class MessageHandler {
@MessageMapping("/message")
@SendTo("/topic/response")
public ResponseMessage sendMessage(RequestMessage message) {
return new ResponseMessage("Hello, " + message.getName() + "!");
}
}
```
4. 在前端 HTML 页面中使用 JavaScript 连接 WebSocket 并发送和接收消息,例如:
```
<script type="text/javascript">
var socket = new SockJS("/websocket");
var stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
stompClient.subscribe("/topic/response", function (response) {
alert("Received: " + response.body);
});
stompClient.send("/app/message", {}, JSON.stringify({'name': 'World'}));
});
</script>
```
这只是一个简单的案例,你可以根据需要进行扩展和修改。