在Play中的组合操作中流式传输http响应!框架2.1

时间:2013-04-30 09:21:02

标签: http scala playframework streaming playframework-2.1

我正在使用Play Zentasks示例应用程序作为模板创建一个包装其他操作的身份验证操作。在某些情况下,需要做的事情之一就是在网络服务上点击,以便检索用户的详细信息。我想以非阻塞的方式做到这一点,但我不想将未来传递给我正在包装的动作。

我能想到这样做的唯一方法是使用Enumerator.fromStream()和从URL对象中提取的InputStream。我猜这不是最好的方法,因为它似乎是重复的努力(考虑到ws对象)。 async ws api(以及底层的asynchttpclient)为所有东西返回Future。我不认为任何人之前已经解决过这个问题,并且可以指向另一个方向吗?有什么东西我不见了吗?另外,使用Enumerator.fromStream(),因为我建议绝对不要阻止?

提前致谢,

Suche

1 个答案:

答案 0 :(得分:0)

您可以使用async WS api。当它返回未来时,您可以在其上调用map,并将值传递给您正在包装的操作。现在您有一个包含您的包装操作结果的未来。将它转换为AsyncResult或者只是将整个事物包装在Async {}块中,它应该可以工作。