如何解决WebFlux 服务器发送事件 CRUD
我正在尝试将 SSE 与 WebFlux 结合使用。我发现的每个单个样本都使用间隔。做演示,好的。但是我觉得一个真正的应用,不行...
到目前为止,我在 MongoDB 中使用 WebFlux,但我仍然不明白客户端如何从 CRUD 操作接收通知事件。
到目前为止我的代码...
PersonHandler.java
public Mono<ServerResponse> savePerson(ServerRequest request) {
Mono<Person> body = request.bodyToMono(Person.class);
return ServerResponse
.ok()
.contentType(MediaType.TEXT_EVENT_STREAM)
.body(
BodyInserters.fromServerSentEvents(
body
.flatMap(service::savePerson)
.map(item -> ServerSentEvent.<Person> builder()
.id(item.getId())
.retry(Duration.ofSeconds(3))
.event("person-saved-event")
.data(item)
.build()
)
)
)
.switchIfEmpty(ServerResponse.noContent().build());
}
PersonRouterConfig.java
@Bean
public RouterFunction<ServerResponse> pessoasRouter(PersonHandler handler) {
return route()
.POST(BASE_URL + "/save",accept(APPLICATION_JSON),handler::savePerson)
.build();
}
请求结果为:
id:60c3f73311cbd913ee35605b
event:person-saved-event
retry:3000
data:{"id":"60c3f73311cbd913ee35605b","fullName":"Rafael Bandeira Rodrigues","name":"Rafael","birthdate":"1981-07-03"}
好的,但我如何通知其他用户,添加了新人?!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。