Spring Web Flux Web客户端无法一一获得价值

时间:2018-12-05 00:02:42

标签: spring-webflux

Tag not found!

因此,上面的代码是一种Spring MVC控制器方法,以1秒的间隔发出0〜10个数字。

这是我的客户代码。

@GetMapping("/test")
fun fluxTest(): Flux<Int> {
        return Flux.create {em ->
            Thread{
                (0..10).forEach{
                    em.next(it)
                    Thread.sleep(1000)
                }
                em.complete()
            }.run()
        }
    }

问题在于客户端程序一次打印0〜10,而不是每隔1秒一次打印一次。

因此,它不会一一打印服务器中的值,而是在流完成时打印整个接收到的值。

有人可以帮助我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:2)

看起来您应该启用服务器发送的事件,简单的方法是将生产者添加到这样的枚举中:

@GetMapping(path = "/test", produces=MediaType.TEXT_EVENT_STREAM_VALUE)