2013-12-15 7 views
5

Czy wszystkie prace związane z działaniem webRTC są wykonywane na serwerze webRTC? Na przykład w wersji rtc data channel from simpl.info można po prostu skopiować kod HTML dla wejściowego pola tekstowego i pola tekstowego, a także JavaScript i skopiować go na komputer lokalny, który działa idealnie. Po dokładniejszym przejrzeniu JavaScript file, wiele wywołań pochodzi z bibliotek webRTC bez ich posiadania na moim lokalnym komputerze. TO ZNACZY.jak działa webRTC?

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

na początku myślałem, aby te metody działają musiałbym ściągnąć WebRTC do lokalnego komputera, który będzie gospodarzem stron i wtedy mogę zadzwonić do nich w ten sposób. Ale tak się nie dzieje, próbowałem większości przykładów i wszystkie działają bez lokalnego webRTC.

Obserwowałem, jak webRTC intro video przechodzi przez wiele funkcji, ale nie wyjaśnia tego konkretnego pytania. Innym aspektem, który mnie także myli, jest fakt, że kiedy udajesz się do urzędnika webrtc.org getting started tutorial, podaje on krok po kroku instrukcje pobierania bibliotek WebRTC, co zrobiłem. Ale jaki jest cel tego, jeśli nie potrzebujesz ich do tworzenia aplikacji webRTC, a praca jest wykonywana na zewnętrznym serwerze?

widziałam jeszcze jedno pytanie, gdzie tytuł jest niemal identyczna, how does webRTC work?, ale po przeczytaniu zaakceptowane odpowiedzi i pytanie jej innego, PO chciała wiedzieć jak peer to peer połączenie działało i wyjaśnił mu prac lód i Serwery TURN, co zrozumiałem na wstępie, moje pytanie brzmi raczej, czy serwery zwrotów, ICE itp. Są hostowane przez Google, czy możemy je hostować lokalnie. A jeśli jest to coś, co hostuje Google itp., Czyż nie jest to nieszkodliwe, niż możliwość hostowania na miejscu?

Odpowiedz

4

WebRTC to bardzo złożona synergia wielu komponentów i protokołów. Na szczęście, z punktu widzenia webdeveloper, wszystko to jest hermetyzowane przez trzy główne interfejsy API JavaScript: getUserMedia, RTCPeerConnection i RTCDataChannel. Te interfejsy API są zdefiniowane przez W3C i są częścią przeglądarki obsługującej WebRTC. można znaleźć przegląd bieżącej pomocy:

Oznacza to, że nie trzeba do "pobrania" WebRTC go używać, jeśli przeglądarka go obsługuje, już jest.

Aby odpowiedzieć na drugie pytanie dotyczące serwerów STUN i TURN: Istnieją serwery publicznie dostępne. Są to jednak głównie do celów testowych. Możesz wdrożyć własny serwer TURN, serwer zwrotny rfc5766 jest taki i dokumentacja zostanie znaleziona here

1

Jeśli niepokoi cię serwer skrętu, możesz utworzyć własny serwer skrętu, używając numeru rfc5766. Użyłem go do stworzenia własnego serwera zwrotnego i działało dobrze.

3

Ponieważ WebRTC używa Peer-to-Peer, będzie działał dobrze, jeśli zrobisz to w sieci lokalnej, ponieważ tożsamość uczestnicy są znani, a WebRTC wie, jak przekazywać informacje. Ale to nie działa przez Internet, ponieważ ludzie używają routerów i zapór ogniowych itp.

Musisz więc wymienić informacje sygnalizacyjne, aby zainicjować połączenie równorzędne na początku.Ta informacja mówi uczestnikom, w jaki sposób mogą znaleźć innych za pośrednictwem Internetu (wystarczy, że adres IP nie będzie wystarczający, ponieważ jeden publiczny adres IP może mieć dowolną liczbę komputerów za routerem). Nazywa się to sygnalizacją. Ale sygnalizacja nie jest częścią WebRTC, więc od ciebie zależy, jak wymieniasz te informacje. Zasadniczo potrzebujesz miejsca, w którym uczestnicy mogą już "widzieć" siebie nawzajem i wymieniać dane sygnalizacyjne. Po wymianie informacji WebRTC może skonfigurować bezpośrednie połączenie równorzędne, które transmituje wszystkie dalsze dane, takie jak wideo i audio (dane te nie są następnie przesyłane przez serwer). W tym celu można wykorzystać dowolną technologię, aplikacje internetowe, komunikatory internetowe, a nawet kopiowanie informacji z wiadomości e-mail.

Napisałem detailed tutorial o tym, jak stworzyć prostą aplikację WebRTC, która korzysta z websockets. Wyjaśnia również, jak skonfigurować własny serwer WebSocket. Mam nadzieję że to pomoże!