当前位置:网站首页>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;
}
边栏推荐
猜你喜欢
随机推荐
学会可视化大屏布局技巧,让领导都赞不绝口
数据库表结构文档 生成工具screw的使用
idea远程debug
信息学奥赛一本通T1450:Knight Moves
9月考,如何选择靠谱正规的培训机构?
10 分钟彻底理解 Redis 的持久化和主从复制
关于NOI 2022福建省选及省队组成的公告
Spark 的架构与作业提交流程
力扣解法汇总622-设计循环队列
C语言实现通讯录功能(400行代码实现)
pyspark --- 空串替换为None
FiBiNet torch reproduction
keepalived安装部署
PMP每日一练 | 考试不迷路-8.2(包含敏捷+多选)
第六章:存储系统
信息学奥赛一本通T1452:Keyboarding
empty() received an invalid combination of arguments - got (tuple, dtype=NoneType, device=NoneType),
[机缘参悟-59]:《素书》-6-安于礼仪[安礼章第六]
《多线程案例》阻塞队列、定时器、线程池、饿汉与懒汉模式
解决plt.imshow()不显示图片cv2.imshw()不显示图片