springboot中使用WebSocket
时间: 2024-02-12 21:07:15 浏览: 67
spring websocket在springboot中使用
在 Spring Boot 中使用 WebSocket 需要以下几个步骤:
1.添加 Spring WebSocket 依赖。
在 pom.xml 文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2.创建 WebSocket 配置类。
创建一个 WebSocket 配置类,配置消息代理和消息终端。
```
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").withSockJS();
}
}
```
在上面的代码中,我们通过 `@EnableWebSocketMessageBroker` 注解启用了 WebSocket 消息代理功能。`configureMessageBroker` 方法配置了消息代理,`registerStompEndpoints` 方法注册了 WebSocket 端点。
3.创建 WebSocket 控制器。
创建一个 WebSocket 控制器,用于处理 WebSocket 请求。
```
@Controller
public class WebSocketController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}
}
```
在上面的代码中,我们通过 `@MessageMapping` 注解指定了请求的路径,`@SendTo` 注解指定了返回消息的路径。
4.创建 WebSocket 客户端。
我们可以使用 JavaScript 或其他语言的 WebSocket 客户端连接到 WebSocket 服务器。
```
var socket = new SockJS('/ws');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
stompClient.subscribe('/topic/greetings', function (greeting) {
showGreeting(JSON.parse(greeting.body).content);
});
});
function sendName() {
stompClient.send("/app/hello", {}, JSON.stringify({'name': $("#name").val()}));
}
```
在上面的代码中,我们使用 `SockJS` 和 `Stomp` 创建了一个 WebSocket 连接,然后订阅了 `/topic/greetings` 主题,当服务端发送消息时,客户端就会接收到消息。
以上就是在 Spring Boot 中使用 WebSocket 的基本步骤。
阅读全文