Kotlin 收集更改时发出的反应通量
第一次使用WebFlux、Flux、reactive等。我有一个简单的服务器设置来获取、发布、放置和删除消息。我希望在服务器路由器收到POST后,立即通过服务器发送的事件流量发出一个值Kotlin 收集更改时发出的反应通量,kotlin,spring-webflux,spring-integration-dsl,Kotlin,Spring Webflux,Spring Integration Dsl,第一次使用WebFlux、Flux、reactive等。我有一个简单的服务器设置来获取、发布、放置和删除消息。我希望在服务器路由器收到POST后,立即通过服务器发送的事件流量发出一个值 fun router() = router { accept(TEXT_EVENT_STREAM).nest { GET("/messages/events", messageHandler::showLastMessage) } "/".nest { (a
fun router() = router {
accept(TEXT_EVENT_STREAM).nest {
GET("/messages/events", messageHandler::showLastMessage)
}
"/".nest {
(accept(APPLICATION_JSON) and "/messages").nest {
GET("/", messageHandler::getMessages)
POST("/", messageHandler::addMessage)
GET("/{id}", messageHandler::getMessage)
PUT("/{id}", messageHandler::updateMessage)
DELETE("/{id}", messageHandler::deleteMessage)
}
}
resources("/**", ClassPathResource("static/"))
}.filter { request, next ->
next.handle(request).flatMap {
if (it is RenderingResponse) RenderingResponse.from(it).modelAttributes(attributes(request.locale(), messageSource)).build() else it.toMono()
}
}
在本例中,/messages/events只是重复整个集合(因为我不知道自己在做什么)
我的问题是(我认为):
是否可以从通量中发射,类似于interval(),但仅当集合发生更改或有什么东西触发通量发射时才发射?换言之:
Flux.wheneverIgetSomething(thatSomething)
Flux.wheneverIgetSomething(thatSomething)