Domanda

Sto usando un punto finale di WebSocket esposto dal mio controller quadro di riproduzione.Il mio cliente comunicherà comunque un grande array di byte e sono un po 'confuso su come gestire questo nel mio Itorato.Ecco cosa ho:

def mywsendpoint (f: string=> string)= WebSocket.async [array [byte]] { Richiesta=>

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

}

Come si può vedere nel codice sopra, sono bloccato sulla linea su come gestire l'array di byte come una richiesta e invia la risposta come una stringa?La mia confusione è sulla chiamata ITORETEE.Foceach.Questo è foreach un foreach sull'array byte o l'intero contenuto della richiesta che ho inviato come array di byte dal mio cliente?È confuso!

Qualche suggerimento?

È stato utile?

Soluzione

Bene ... dipende.Il tuo cliente inviare tutti i binari in una sola volta, o è (esplicitamente) chunk da chunk?

-> Se è tutto in una sola volta, allora tutto sarà nel primo blocco (quindi per cui un websocket? Perché un'emerazione? Le azioni con bodyparser saranno probabilmente più efficienti per questo).

-> Se è bloccato da Chunk devi mantenere tutti i pezzi che ricevi e concatenarli su chiusura (vicino, a meno che tu non abbia un altro modo per il cliente di dire: "Ehi, ho finito!"). .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top