문제

Play 프레임 워크 컨트롤러가 노출 된 WebSocket 끝점을 사용하고 있습니다.그러나 내 고객은 대규모 바이트 배열을 보냅니다. 나는이 요테터에서 이것을 처리하는 방법에 대해 조금 혼란 스럽습니다.여기있는 것입니다 :

def myWSEndPoint (f : string=> string)= websocket.async [배열 [바이트]] { 요청=>

  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)
  }
.

}

위의 코드에서 볼 수 있으므로 바이트 배열을 하나의 요청으로 처리하고 응답을 문자열로 보내는 방법에 대해 줄에 멈췄습니까?내 혼란은 itererate.foreach 전화에 있습니다.이것은 바이트 배열에 대한 위조 또는 내 클라이언트에서 바이트 배열로 보내는 요청의 전체 내용을 위조합니까?혼란 스럽습니다!

모든 제안?

도움이 되었습니까?

해결책

잘 ... 그것은 의존합니다.고객이 한 번에 모든 바이너리를 보내거나 (명시 적으로) 청크로 청크입니까?

-> 한 번에 모두이면, 모든 것이 첫 번째 청크에있을 것입니다 (그러므로 웹 소켓이 왜 반복적 인 이유는 무엇입니까? bodyparser와의 행동이 더 효율적 일 것입니다).

-> 청크로 청크가있는 경우 모든 청크를 받아들이고 클라이언트가 말하기 위해 다른 방법이 없다면 닫기에 연결해야합니다. "이봐!"/ P>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top