2013-03-15 14 views
6

Sto sperimentando con webRTC e sembra che ci sia un limite arbitrario al numero di byte che possono essere inviati in ogni messaggio. This guy il cui esempio che ho usato ha scelto un limite di 100 (più alcuni) byte. Nei miei test sembra essere vicino a 200 byte. Tuttavia dalla lettura su TCP e UDP tali protocolli supportano pacchetti fino a circa 65kb e anche quando si prende in considerazione lo MTU per diversi tipi di reti dovrebbe essere ancora molto più spazio disponibile di ~ 200 byte.Qual è la dimensione massima dei messaggi del canale dati webRTC?

L'unica fonte che ho trovato che menziona un limite rigido è this WebRTC Data Channel Protocol draft ma dice solo TBD.

Quindi le mie domande sono:

  1. se c'è una fonte che specifica il limite di corrente dimensione dei messaggi in qualsiasi browser?
  2. se posso supporre che il limite sia sempre lo stesso e, in caso contrario, se la mia app può essere resa consapevole del limite?
+0

Nel caso in cui qualcun altro lo trovi con problemi simili, ho trovato alcune informazioni quasi correlate. Attualmente Chrome limita il traffico a circa 3kbps al posto del rilevamento della congestione. Questo limite è detto essere rimosso quando hanno capito come rilevarlo. Non sono sicuro se il problema che ho riscontrato sia causato da questo. –

+0

Mi sto occupando dello stesso problema. C'è un limite in firefox, invece? – charlypu

+0

Firefox sembra non avere questo limite e supporta anche l'invio di Blob. Ma con firefox non riesco invece a stabilire una connessione tra schede/browser ... –

risposta

5

Il progetto sharefest ha trovato un modo per aggirare il throttling tasso - è possibile modificare l'offerta in uscita per modificare l'impostazione della larghezza di banda (per http://www.ietf.org/rfc/rfc2327.txt)

dettagli qui: https://github.com/Peer5/ShareFest/blob/master/public/js/peerConnectionImplChrome.js#L201

Dalla mia esperienza si' ancora limitato a ~ 800 byte per messaggio.

+0

Grazie! Lo proverò appena ne avrò la possibilità. –

+0

Sembra funzionare! File di grandi dimensioni hanno bloccato la scheda, ma presumo che ciò sia causato dalla mia specifica implementazione. –

+0

Stai provando a caricare l'intero file in una volta? Utilizzare slicing invece per leggere il file bit per bit: http://www.html5rocks.com/en/tutorials/file/dndfiles/ per una panoramica di slicing e il mio progetto http://hcliff.github.com/Ampere per ulteriori informazioni relative ai file di grandi dimensioni e webrtc :) – hcliff

0

Ho provato a inviare jpeg a chrome 57 sul canale dati e ora i messaggi fino a 64k sembrano affidabili.

Il canale dati webRTC ha un meccanismo di affidabilità, utilizza SCTP su DTLS (su UDP) - SCTP consente di impostare l'affidabilità e il comportamento degli ordini, ma per impostazione predefinita WebRTC utilizza ordinato + affidabile - ciò significa che si ottiene una semantica simile a quella di TCP - eccetto che i limiti del messaggio sono preservati - almeno in teoria.

In pratica Chrome può consegnare messaggi parziali al javascript se esaurisce lo spazio, quindi è meglio controllare di avere un messaggio completo prima di elaborarlo.

Problemi correlati