springboot返回eventStream
时间: 2024-01-07 10:05:40 浏览: 35
Spring Boot可以使用SSE(Server-Sent Events)技术返回事件流,SSE是一种基于HTTP协议的服务器向客户端推送事件的技术。
下面是一个使用Spring Boot返回事件流的示例:
1. 创建一个简单的Spring Boot应用程序。
2. 创建一个控制器类,使用`@GetMapping`注解将事件流映射到一个URL上。
```java
@RestController
public class EventController {
@GetMapping("/events")
public Flux<String> getEvents() {
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "Event " + sequence);
}
}
```
3. 在`getEvents()`方法中,使用`Flux.interval()`方法创建一个每秒钟生成一个事件的无限序列。在这个例子中,每秒钟生成一个事件,事件的内容是字符串`"Event "`加上一个自增的序号。
4. 将`Flux`对象返回给客户端,客户端会自动接收到事件流。
5. 在客户端使用JavaScript代码订阅事件流:
```javascript
const eventSource = new EventSource("/events");
eventSource.onmessage = function(event) {
console.log(event.data);
};
```
6. 运行Spring Boot应用程序,并在浏览器中打开`http://localhost:8080/events`,可以看到控制台输出每秒钟生成的事件。
这样就可以使用Spring Boot返回事件流了。