无法在Play 2.5(Scala)中流式传输简单字符串

时间:2017-05-30 11:27:23

标签: scala playframework streaming akka akka-stream

我真的很难在 Play 2.5 中流式传输一个简单的字符串。所以,如果我想输出字符串“Hello”,我可以从这开始:

package controllers

import javax.inject.Inject
import play.api.mvc.{Action, Controller}
import akka.stream.scaladsl.Source


class Enum @Inject() extends Controller {

  def index = Action {
    Ok.chunked(Source("hello"))
  }
}

但显然这不会编译。我已经阅读了Play documentation regarding streaming,我知道在之前的版本中Ok.chunked(Enumerator("hello"))就是这样。不幸的是,Play's migration guide并没有向我澄清任何这一点。也许我在这个屏幕上看起来太长了。

1 个答案:

答案 0 :(得分:1)

问题是Source("hello")Char的来源,因为Source()需要Seq

由于Char不是Writeable(在play.api.http.Writeable意义上),因此您无法将Char的来源提供给Ok.chunked

如果您只想发送一个String元素,则应该Source.single("hello")