Java Spring使用event-stream进行数据推送
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
@RestController
public class StreamingController {
@GetMapping(path = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> stream() {
return Flux.just("Event 1", "Event 2", "Event 3")
.map(s -> s + "\n") // 添加换行符以符合EventStream格式
.delayElements(Duration.ofSeconds(1)); // 每秒发送一个事件
}
}
这段代码定义了一个REST控制器,其中包含一个stream方法,该方法使用Spring WebFlux的Flux来创建一个EventStream格式的响应。客户端将通过GET请求到/stream路径来接收这个数据流。每隔一秒钟,服务器就会发送一个事件,事件之间通过换行符隔开,符合EventStream的格式要求。
评论已关闭