【发布时间】: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