我正在使用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的操作可能会更有效)。

>如果它是块的块,你必须保留你收到的每个块,并在关闭时连接它们(关闭,除非你有另一种方式来说:“嘿,我已经完成了!”)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top