【问题标题】:Play Framework 2.5 Streaming content with delayPlay Framework 2.5 延迟流式传输内容
【发布时间】:2017-05-31 09:58:35
【问题描述】:

我一直在尝试使用 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找到。

它确实会返回值,但不会延迟它们,它还会在加载一段时间后发送整个响应。我不确定 initialDelay 是否适合延迟操作。

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

感谢您的帮助!

【问题讨论】:

  • 您的浏览器和播放可能会缓冲流的某些部分。 initialDelay 似乎是正确的配置。尝试发送包含新行的流:i.toString() + "\n" 并尝试使用 curl 查看结果

标签: java playframework reactive-programming akka-stream


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2017-09-20
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多