Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 收集更改时发出的反应通量_Kotlin_Spring Webflux_Spring Integration Dsl - Fatal编程技术网

Kotlin 收集更改时发出的反应通量

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

第一次使用WebFlux、Flux、reactive等。我有一个简单的服务器设置来获取、发布、放置和删除消息。我希望在服务器路由器收到POST后,立即通过服务器发送的事件流量发出一个值

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)