2013-12-15 22 views
5

Tutto il lavoro per la funzionalità webRTC viene eseguito su un server WebRTC? Ad esempio, nello rtc data channel from simpl.info è sufficiente copiare l'html per la casella di testo di input e la casella di testo, nonché il codice JavaScript e copiarlo sul computer locale e funziona perfettamente. Quando il JavaScript file viene ispezionato più vicino, ci sono molte chiamate provenienti da librerie webRTC senza averle sul mio computer locale. OSSIAcome funziona webRTC funzionalmente?

window.localPeerConnection = new webkitRTCPeerConnection(servers, 
{optional: [{RtpDataChannels: true}]}); 

in un primo momento ho pensato di ottenere questi metodi per lavorare avrei dovuto scaricare WebRTC alla macchina locale che ospiterà le pagine e poi mi può chiamare in quel modo. Ma non sembra essere il caso, ho provato la maggior parte degli esempi e funzionano tutti senza avere webRTC localmente.

Ho guardato il webRTC intro video che passa su molte delle funzionalità, ma non spiega questa particolare domanda. Un altro aspetto che mi confonde, è il fatto che quando vai al numero ufficiale webrtc.org getting started tutorial, fornisce istruzioni passo passo per scaricare le librerie webRTC, cosa che ho fatto. Ma qual è lo scopo di questo se non hai bisogno di loro per creare app webRTC e il lavoro viene svolto in un server esterno?

ho visto un'altra domanda dove il titolo è quasi identico, how does webRTC work?, ma dopo aver letto la risposta accettata e la questione la sua diversa, OP ha voluto sapere come il peer to peer connessione lavorato e hanno spiegato a lui opere ICE e TURN server, che ho capito dal video introduttivo, la mia domanda è di più questi server, ICE, ecc. Sono ospitati da Google o li possiamo ospitare localmente. E se il suo qualcosa su Google ospita ecc., Non è meno sicuro che essere in grado di ospitare localmente?

risposta

4

WebRTC è una sinergia molto complessa di molti componenti e protocolli. Fortunatamente, dal punto di vista di un webdeveloper, tutto questo è incapsulato da tre API JavaScript principali: getUserMedia, RTCPeerConnection e RTCDataChannel. Queste API sono definite dal W3C e fanno parte del browser che supporta WebRTC. È possibile trovare una panoramica del supporto corrente qui:

Questo significa che non c'è bisogno di "scaricare" WebRTC usarlo, se il browser lo supporta, è già lì.

Per rispondere alla seconda domanda relativa ai server STUN e TURN: Sono disponibili server disponibili pubblicamente. Tuttavia, questi sono principalmente a scopo di test. È possibile distribuire il proprio server TURN, rfc5766-turn-server è tale e viene trovata la documentazione here

1

Se si è preoccupati del server di svolta, è possibile creare il proprio server di turno utilizzando rfc5766. L'ho usato per creare il mio server di turno e ha funzionato bene.

3

Poiché WebRTC utilizza il peer to peer, funzionerà correttamente se lo si fa sulla rete locale, perché l'identità di i partecipanti sono noti e WebRTC sa come instradare le informazioni. Ma questo non funziona su Internet, poiché le persone utilizzano router e firewall, ecc ...

Quindi è necessario scambiare le informazioni di segnalazione per inizializzare la connessione peer all'inizio.Questa informazione dice ai partecipanti come possono trovare gli altri su Internet (solo l'IP non sarebbe sufficiente, in quanto un IP pubblico può avere un numero qualsiasi di PC dietro al proprio router). Questo è chiamato segnalazione. Ma la segnalazione non fa parte di WebRTC, quindi spetta a te come scambiare queste informazioni. Quindi, in pratica, è necessario un luogo in cui i partecipanti possano "vedersi" e scambiarsi i dati di segnalazione. Una volta scambiate le informazioni, WebRTC è in grado di impostare la connessione peer diretta che trasmette tutti gli altri dati come video e audio (questi dati non viaggiano quindi sul server). Per questo è possibile utilizzare qualsiasi tecnologia si desideri, websocket, messaggistica istantanea, persino copiare le informazioni da una e-mail funzionerebbe.

Ho scritto uno detailed tutorial su come creare una semplice app WebRTC, che utilizza websocket. Spiega anche come configurare il proprio server websocket. Spero che questo ti aiuti!