我有数据以块的形式到达演员,并希望将这些块作为流返回Play Result
。由于获得响应的唯一方法Ok.stream
看起来像是理想的候选人,因此如下所示:
Action.async { request =>
(source ? GetStream()).map {
case enumerator => Ok.stream(enumerator)
}
}
我会Enumerator[Array[Byte]]
从我的演员那里返回一个,然后在演员内部继续将块推入枚举器,因为消息到达演员。然而:从一个演员返回一个可变的枚举器绝对看起来像是某种违反。
有没有更合适的方法来做到这一点?我想要么akka-stream
或akka.io
将是可能解决问题空间的抽象,但我看不出它们将如何应用。