Stabilisco la connessione WebRTC su Chrome 23. Per collegare lo streaming locale è necessario consentire al browser di utilizzare la videocamera e il microfono. Dal lato del chiamante sto controllando se è possibile ottenere lo streaming locale e non invierò l'offerta fino a questo momento. Quindi l'offerta viene inviata e il browser inizia immediatamente a inviare candidati ICE.Errori in caso di ricezione di candidati ICE prima dell'invio della risposta
Quindi se il browser remoto non ha ottenuto il flusso multimediale locale ancora ricevo SYNTAX_ERR: DOM Exception 12
su peerConnection.addIceCandidate(candidate)
per ogni candidato ICE ricevuto.
Ho controllato documentation su addIceCandidate
ma non ci sono informazioni sui prerequisiti.
Penso di poter ritardare l'invio di candidati ICE dall'offerente ritardandolo e aspettando il segnale che il client remoto ha aggiunto lo streaming locale, ma questa è una comunicazione aggiuntiva necessaria e non sembra corretta.
Posso in qualche modo aggiungere candidati ICE remoti allo webkitRTCPeerConnection
prima che venga inviata una risposta e che il flusso multimediale locale sia collegato?
Per il primo end-point, controllo i candidati ICE remoti dopo aver creato l'offerta (https://github.com/muaz-khan/WebRTC-Experiment/blob/master/ASP.NET-MVC/JavaScript.js#L408) e per il secondo end-point, controllo i candidati ICE remoti quando il secondo peer sa che il primo peer sta per inviarlo offerta in pochi secondi! (https://github.com/muaz-khan/WebRTC-Experiment/blob/master/ASP.NET-MVC/JavaScript.js#L229) –
Grazie per il tuo esempio :). Il mio problema ora è diverso però. Dopo aver impostato 'remoteDescription', posso ottenere i candidati all'ICE bene. Ma quando ritardo di consentire l'accesso ai media dopo che tutti i candidati ICE sono stati ricevuti, nessun candidato viene inviato dal ricevente. Hai gestito questo costringendo gli utenti a consentire l'accesso ai contenuti multimediali prima di entrare nella stanza. Però non è un'opzione per me. – Episodex