当前位置:网站首页>boot-SSE
boot-SSE
2022-08-03 07:32:00 【iiaythi】
boot - SSE 使用
sse(
Server Sent Event),直译为服务器发送事件,顾名思义,也就是客户端可以获取到服务器发送的事件
webflux 使用
@GetMapping("/stream-sse")
public Flux<ServerSentEvent<String>> streamEvents() {
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> ServerSentEvent.<String> builder()
.id(String.valueOf(sequence))
.event("periodic-event")
.data("SSE - " + LocalTime.now().toString())
.build());
}
@GetMapping(path = "/stream-flux", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamFlux() {
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "Flux - " + LocalTime.now().toString());
}
spring-mvc 方式
@GetMapping("/stream-sse-mvc")
public SseEmitter streamSseMvc() {
SseEmitter emitter = new SseEmitter();
ExecutorService sseMvcExecutor = Executors.newSingleThreadExecutor();
sseMvcExecutor.execute(() -> {
try {
for (int i = 0; true; i++) {
SseEmitter.SseEventBuilder event = SseEmitter.event()
.data("SSE MVC - " + LocalTime.now().toString())
.id(String.valueOf(i))
.name("sse event - mvc");
emitter.send(event);
Thread.sleep(1000);
}
} catch (Exception ex) {
emitter.completeWithError(ex);
}
});
return emitter;
}
边栏推荐
猜你喜欢
随机推荐
信息学奥赛一本通T1454:山峰和山谷
异常检测 IsolationForest 返回概率
MySQL - 触发器
static数据成员
(十四)51单片机——LCD1602实现滚动效果
分布式数据库数据一致性的原理、与技术实现方案
调用feign报错openfeign/feign-core/10.4.0/feign-core-10.4.0.jar
postman将接口返回结果生成csv文件到本地
【着色器实现Glow可控局部发光效果_Shader效果第十三篇】
pyspark --- count the mode of multiple columns and return it at once
pyspark df 二次排序
华为设备配置BFD多跳检测
【卫朋】硬件创业:营销与开发同行
最新版图书馆招聘考试常考试题重点事业单位
从学生到职场的转变
关于利用canvas画带箭头的直线旋转
信息学奥赛一本通T1451:棋盘游戏
薛定谔的对象属性判断
pt-online-schema-change工具使用的一次
测试用例设计方法之因果图详解









