【发布时间】:2019-06-23 12:53:39
【问题描述】:
我想订阅服务器发送的事件(参见下面的示例)
在客户端浏览器和 java 服务器之间是另一个使用 compress nodejs 中间件的应用程序。
当我尝试通过浏览器访问此服务器发送的事件时,此中间件会导致 ERR_INCOMPLETE_CHUNKED_ENCODING。
为了让它运行起来,我应该做一个 .flush() ,这里有更详细的描述(对于 nodejs 应用程序):https://github.com/expressjs/compression/blob/master/README.md#server-sent-events
我的代码目前如下所示:
@RequestMapping(method = RequestMethod.GET, value = "/fluxTest", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> getFluxStream(HttpServletRequest request) {
String[] randomNames = { "Steve", "Dirk", "Jens", "Rene"};
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "{\"name\": \"" + randomNames[new Random().nextInt(randomNames.length)] + "\"}");
}
如何在 java 中触发 .flush(),如 nodejs 压缩文档中所述?
谢谢!!!
【问题讨论】:
标签: java spring express compression flux