Play Framework 2.5 延迟流式传输内容

Play Framework 2.5 Streaming content with delay

我一直在尝试在 Java 中使用 Play Framework 2.5 通过 HTTP 延迟传输内容。

问题是我不确定结果是否真的在流式传输,这就是为什么我试图延迟每个项目的发射,但由于某种原因似乎不起作用。

代码

  public Result test(){

    HttpEntity http = new HttpEntity.Streamed(Source.range(0, 99999)
            .map(i -> ByteString.fromString(i.toString()))
            .initialDelay(FiniteDuration.create(200, TimeUnit.MILLISECONDS))
            , Optional.empty(), Optional.of("text/event-stream"));
    return ok().sendEntity(http);
}

可以找到回复here。

它会 return 值但不会延迟它们,它还会在加载一段时间后发送整个响应。我不确定 initialDelay 是否是延迟的正确运算符。

这是使用 Play 发送流的正确方法吗?我一直在使用此页面作为参考 https://www.playframework.com/documentation/2.5.x/StreamsMigration25

感谢您的帮助!

您应该使用 delay,而不是 initialDelay,这只是流程开始时的延迟。请注意,当缓冲区已满时,您需要定义溢出策略。