Pregunta

Estoy usando un punto final de WebSocket expuesto por mi controlador Marco de juego.Sin embargo, mi cliente enviará una gran matriz de bytes y estoy un poco confundido sobre cómo manejar esto en mi ITERATEE.Aquí está lo que tengo:

DEF MYWSENDPOINT (F: STRING=> STRING)= WebSocket.Async [Array [Byte]] { SOLICITUD=>

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

}

Como se puede ver en el código anterior, estoy atascado en la línea sobre cómo manejar la matriz de bytes como una solicitud y enviar la respuesta hacia atrás como una cadena?Mi confusión está en el ITERATEE.Foreach Call.¿Es este foreach un foreach en la matriz de bytes o en todo el contenido de la solicitud que envío como una matriz de bytes de mi cliente?¡Es confuso!

¿Alguna sugerencia?

¿Fue útil?

Solución

bien ... depende.¿Está su cliente enviando todos los binarios a la vez, o es (explícitamente) trozos por chunk?

-> Si todo está a la vez, entonces todo estará en el primer trozo (por lo tanto, ¿por qué un WebSocket? ¿Por qué un itinerado? Las acciones con Bodyparser probablemente serán más eficientes para eso).

-> Si es fragmento por pieza, tiene que mantener todos los trozos que reciba, y concatenarlos en cierre (de cerca, a menos que tenga otra forma para que el cliente diga: "¡Oye, he terminado!"./ p>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top