2014-09-22 8 views
7

Utilizzo WebRTC e mi rendo conto che non è supportato in tutti i browser. Tuttavia, Chrome e Firefox lo supportano (nelle versioni più recenti, ho installato le versioni più recenti) purché abbiate il prefisso corretto per determinate variabili. Per esempio, io ho il seguente per PeerConnection per il supporto cross-browser:Configurazione RTF non valida solo in Chrome

var PeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; 

Ora che dovrebbe essere sostenuto cross-browser, ho il seguente codice:

var servers = { 
iceservers: [ 
    {url: "stun:23.21.150.121"}, 
    {url: "stun:stun.1.google.com:19302"} 
    ] 
}; 
var pc = PeerConnection(servers); 

Ma in Chrome It Gets un errore sull'ultima riga (var pc = PeerConnection(servers);). L'errore è:

Failed to construct 'RTCPeerConnection': Malformed RTCConfiguration"} 

Ovviamente, a Chrome non piace il mio parametro di configurazione nella dichiarazione PeerConnection. Ma la mia domanda è: perché sto ricevendo questo errore e come mai solo in Chrome? (FireFox funziona bene)

risposta

6

Bene, la soluzione è in realtà semplice e silenziosa. L'oggetto servers deve essere creato con iceServers in caso cammello. Inoltre, hai dimenticato la tua parola chiave new durante la creazione della connessione ma probabilmente è un errore di battitura nella domanda.

Ti piace questa:

var servers = { 
iceServers: [ 
    {url: "stun:23.21.150.121"}, 
    {url: "stun:stun.1.google.com:19302"} 
    ] 
}; 
var pc = new PeerConnection(servers); 

Entrambi tutto minuscolo e caso cammello funzionano bene in FireFox. Quindi, cambiando non dovrebbe cambiare il modo in cui funziona lì, ma deve essere un caso di cammello perché funzioni in Chrome.

+1

Sapevo che sarebbe stato qualcosa di semplice. Quindi la nuova parola chiave era solo un refuso nella mia domanda come hai immaginato. Molte grazie! – chRyNaN

2

Vedere la risposta di Ben. JavaScript fa distinzione tra maiuscole e minuscole e 'iceServers' è l'ortografia corretta da mediacapture spec.

Volevo chiarire che tutti i "server di ghiaccio" in minuscolo non funzionano effettivamente in Firefox, in quanto i server STUN vengono ignorati. Firefox usa il suo server STUN predefinito quando non ne vede uno fornito, ecco perché sembra funzionare, ma non sta usando i server STUN che si pensa.

+0

In base alla rete di sviluppatori di Mozilla, supportano le lettere minuscole per il server di stordimento. Controlla https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRTC/WebRTC_basics – chRyNaN

+0

@AndroidStudent Non vedo dove dice questo. L'unica menzione che trovo di "server" è come "iceServer" (maiuscolo "S") [qui] (https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRTC/WebRTC_basics # server). In ogni caso, sono sicuro che non accetta tutti i "server di ghiaccio" minuscoli perché la [fonte] (http://hg.mozilla.org/mozilla-central/annotate/68f76e3c5787/dom/webidl/RTCConfiguration.webidl # l17) lo dice. – jib

+0

frainteso la tua risposta. Completamente d'accordo. Grazie per l'input – chRyNaN