2012-10-05 12 views
47

Zakładam, że WebRTC jest API, który dekoduje/koduje audio i wideo, chociaż komunikacja między serwerem a klientami odbywa się za pośrednictwem gniazd internetowych lub innego protokołu sieciowego? Jestem nieco zdezorientowany. Czy WebRTC ma własny protokół komunikacyjny?WebRTC i Websockets. Czy istnieje różnica

Odpowiedz

81

Istnieją dwie strony do WebRTC.

  1. API JavaScript (getUserMedia), które umożliwiają aplikacji dostęp do sprzętu z kamery i mikrofonu. Możesz użyć tego dostępu, aby po prostu wyświetlić strumień lokalnie (być może applying effects) lub wysłać strumień przez sieć. Możesz wysłać dane do swojego serwera lub użyć ...
  2. PeerConnection, interfejsu API, który pozwala przeglądarce na ustanowienie bezpośrednich połączeń peer-to-peer. Możesz ustanowić połączenie bezpośrednio z przeglądarką innej osoby i bezpośrednio wymieniać dane. Jest to bardzo przydatne w przypadku danych o dużej przepustowości, takich jak wideo, gdzie nie chcesz, aby serwer musiał obsługiwać przekazywanie dużych ilości danych.

Aby zobaczyć obie części WebRTC w akcji, spójrz na the demos.

Tak w skrócie:

  • WebSockets umożliwienia pełnego dupleksu komunikacji pomiędzy przeglądarką a serwerem WWW.
  • Serwer WebRTC PeerConnection umożliwia komunikację w trybie pełnego dupleksu między dwiema przeglądarkami.
+2

WOW ... dziękuję za chyba najbardziej zwięzłą odpowiedź, jakiej mogłem się spodziewać. * So PeerConnection jest połączeniem P2P, czy faza uzgadniania wymaga serwera w miksie? jest serwerem wymaganym dla dowolnego interfejsu API PeerConnection? – AndrewMcLagan

+7

"czy faza uzgadniania wymaga serwera w miksie?" Tak. WebRTC został zaimplementowany przy użyciu architektury JSEP, co oznacza, że ​​wykrywanie i sygnalizacja użytkowników odbywa się za pośrednictwem oddzielnego kanału komunikacyjnego (na przykład przy użyciu WebSocket lub XHR i interfejsu DataChannel API). Zobacz przykład http://apprtc.appspot.com lub (przepraszam za autopromocję) http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-signalling –

+1

@ josh3736 Kiedy mówisz "bezpośredni peer" -to-peer socket "i" full-duplex communication "oznacza, że ​​ktoś zbudował niezawodne, pakietowane i sprawdzone przez błędy rozwiązanie na szczycie protokołu UDP do komunikacji P2P (nie TCP, ale coś w tym stylu)?Mam wrażenie, że WebRTC nie obsługuje połączeń P2P TCP. –

12

WebRTC wykorzystuje RTP (protokół oparty na protokole UDP) do transportu mediów, ale wymaga zewnętrznego kanału sygnalizacyjnego do skonfigurowania komunikacji. Jedną opcją dla kanału sygnalizacyjnego jest WebSocket.

3

Zamiast peerConnection można również spojrzeć na wersję roboczą kanału danych WebRTC: http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol-00, która jest w zasadzie dwukierunkową udp. Co może być naprawdę cenną alternatywą dla WebSockets, ponieważ nie ma "negatywnych" stron połączenia TCP.

+0

jest to realizowane przez dowolną przeglądarkę? Czy istnieje przykład? – appsthatmatter

+0

@ jjoe64 peerConnection jest już zaimplementowany w Chrome i FireFox Przykład: http://mozilla.github.com/webrtc-landing/ – spicyramen

+1

potrzeba połączenia pomiędzy przeglądarką a serwerem (node.js). Nie p2p – appsthatmatter

2

Nie, sygnalizacja nie jest zdefiniowana przez WebRTC.

Oto post przez IETF, która wyjaśnia to całkiem dobry, dlaczego nie jest: http://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html

Oznacza to, że mogą swobodnie wybrać sposób wymieniać Państwo informacje o sieci. To znaczy. możesz używać stron internetowych, HTTP, a nawet e-maili, ale to byłoby trochę trudu :)

Powiązane problemy