播放框架WebSocket异步
-
21-12-2019 - |
题
我正在使用My Play Framework Controller公开的WebSocket结束点。但是,我的客户将发送一个大字节数组,我有点困惑如何在我的iteatee中处理这个。这是我有的:
def mywsendpoint(f:string=>字符串)= websocket.async [array [byte]] { 请求=>
Akka.future {
val (out, chan) = Concurrent.broadcast[Array[Byte]]
val in: Iteratee[Array[Byte], Unit] = Iteratee.foreach[Array[Byte]] {
// How do I get the entire file?
}
(null, null)
}
.
}
可以在上面的代码中看到,我卡在线如何处理字节数组作为一个请求,并将响应作为字符串发送回来?我的困惑是在iteratee.foreach呼叫。这是在字节数组上的foreach and offeach,或者请求从我的客户端发送作为字节数组的整个内容?它令人困惑!
任何建议?
解决方案
好吧......这取决于。您的客户立即发送所有二进制文件,还是通过块(明确)块?
- >如果它同时一切,那么一切都会在第一个块中(因此为什么一个websocket?为什么itatee?使用bodyParser的操作可能会更有效)。
>如果它是块的块,你必须保留你收到的每个块,并在关闭时连接它们(关闭,除非你有另一种方式来说:“嘿,我已经完成了!”)。
不隶属于 StackOverflow