播放2.0,流媒体模板结果?

时间:2012-06-06 14:02:27

标签: playframework playframework-2.0

使用模板生成响应时,将计算模板,然后发送结果。

在构建响应时是否可以流式传输模板的结果?

1 个答案:

答案 0 :(得分:3)

Streaming的工作方式是逐个发送结果,因此您的模板应该只构建响应的一部分。

我假设您有Enumerator[Part],其中Part是对结果部分进行建模的类型。例如,您可以从Web Service调用或数据库查询构建此枚举器。

然后你需要将这些响应部分转换为html部分。您可以使用Enumeratee[Part, Html]

执行此操作

最后,使用您的HTTP结果的feed方法,并将您的枚举数与您的枚举数一起传递给它。

这是一个(未经测试的)示例,说明了上述解释:

def stream = Action { implicit request =>
  val stream: Enumerator[Part] = …
  val toHtml = Enumeratee.map[Part] { part =>
    views.html.part(part)
  }
  Ok.feed(stream &> toHtml)
}