Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在开放连接上向播放框架发送流式数据/从播放框架发送流式数据_Scala_Http_Playframework_Playframework 2.0 - Fatal编程技术网

Scala 在开放连接上向播放框架发送流式数据/从播放框架发送流式数据

Scala 在开放连接上向播放框架发送流式数据/从播放框架发送流式数据,scala,http,playframework,playframework-2.0,Scala,Http,Playframework,Playframework 2.0,我需要发送一个数据流到播放服务器。流的长度未知,我需要在每一个换行符\n或每几行获得一个响应。而不是等待整个数据被发送 考虑以下用例: 假设我打算编写一个控制台应用程序,当启动时,它连接到我的web服务器,所有用户输入都被发送到每个换行符上播放,并得到异步响应。以上所有操作都应该在单个连接上执行,即我不想在发送给播放的每个请求上打开新连接(一个好的模拟是两个进程通过两个管道进行通信)。 实现这一目标的最佳方法是什么? 是否有可能通过仅通过http(使用单个http连接)与服务器通信的客户端来实现

我需要发送一个数据流到播放服务器。流的长度未知,我需要在每一个换行符
\n
或每几行获得一个响应。而不是等待整个数据被发送

考虑以下用例:
假设我打算编写一个控制台应用程序,当启动时,它连接到我的web服务器,所有用户输入都被发送到每个换行符上播放,并得到异步响应。以上所有操作都应该在单个连接上执行,即我不想在发送给播放的每个请求上打开新连接(一个好的模拟是两个进程通过两个管道进行通信)。
实现这一目标的最佳方法是什么?
是否有可能通过仅通过http(使用单个http连接)与服务器通信的客户端来实现

编辑:
我目前对如何实现这一点的想法如下:
我可以定义一个新的
BodyParser[Future[String]]
,它基本上是一个
Iteratee[Array[Byte],Future[String]]
。在解析过程中,我可以异步计算结果,并且操作可以在将来的
onComplete
方法中以
ChunkedResult
的形式返回结果。

这听起来像是正确的方法吗?

关于如何实现这一点有什么建议吗?

也许你应该看看WebSocket。 爪哇:
Scala:

我需要避免使用
WebSockets
,因为我想保持API的RESTful。否则,这不是一个坏主意:)你得到了@mizz的解决方案吗