WebRTC und Websockets. Ist da ein Unterschied

Lesezeit: 3 Minuten

Benutzer-Avatar
Andrew McLagan

Ich gehe davon aus, dass WebRTC eine API ist, die Audio und Video decodiert/codiert, obwohl die Kommunikation zwischen dem Server und den Clients über Web-Sockets oder ein anderes Netzwerkprotokoll erfolgt? Ich bin ein bisschen verwirrt. Verfügt WebRTC über ein eigenes Kommunikationsprotokoll?

Benutzer-Avatar
josh3736

WebRTC hat zwei Seiten.

  1. JavaScript-APIs (getUserMedia), die einer App den Zugriff auf Kamera- und Mikrofonhardware ermöglichen. Sie können diesen Zugriff verwenden, um den Stream einfach lokal anzuzeigen (evtl Effekte anwenden) oder den Stream über das Netzwerk senden. Sie könnten die Daten an Ihren Server senden, oder Sie könnten…
  2. PeerConnectioneine API, die Browsern die Einrichtung ermöglicht direkter Peer-to-Peer Socket-Verbindungen. Sie können direkt eine Verbindung zu fremden Browsern aufbauen und direkt Daten austauschen. Dies ist sehr nützlich für Daten mit hoher Bandbreite wie Video, bei denen Sie nicht möchten, dass Ihr Server große Datenmengen weiterleiten muss.

Schauen Sie sich an die Demos um beide Teile von WebRTC in Aktion zu sehen.

Also in aller Kürze:

  • WebSockets ermöglichen die Vollduplex-Kommunikation zwischen einem Browser und einem Webserver.
  • WebRTCs PeerConnection ermöglicht die Vollduplex-Kommunikation zwischen zwei Browsern.

  • WOW … danke für die vielleicht prägnanteste Antwort, die ich je erwarten konnte. * PeerConnection ist also eine P2P-Verbindung, erfordert die Handshaking-Phase einen Server in der Mischung? Wird für eine der APIs von PeerConnection ein Server benötigt?

    – Andrew McLagan

    5. Oktober 2012 um 5:07 Uhr


  • ‘Benötigt die Handshaking-Phase einen Server in der Mischung?’ Ja. WebRTC wurde mithilfe der JSEP-Architektur implementiert, was bedeutet, dass die Benutzererkennung und -signalisierung über einen separaten Kommunikationskanal erfolgt (z. B. mithilfe von WebSocket oder XHR und der DataChannel-API). Siehe die apprtc.appspot.com Beispiel oder (Entschuldigung für Eigenwerbung) html5rocks.com/en/tutorials/webrtc/basics/#toc-signalling

    – Sam Dutton

    12. Oktober 2012 um 9:18 Uhr

  • @ josh3736 Wenn Sie “direkter Peer-to-Peer-Socket” und “Vollduplex-Kommunikation” sagen, bedeutet das, dass jemand eine zuverlässige, paketgeordnete und fehlergeprüfte Lösung auf der Grundlage des UDP-Protokolls für die P2P-Kommunikation (nicht TCP , aber so ähnlich)? Ich habe den Eindruck, dass WebRTC keine P2P-TCP-Verbindungen unterstützt.

    – Landon Poch

    22. August 2014 um 18:25 Uhr

  • peerConnection kann ohne Browser verwendet werden. Es gibt native APIs für iOS und Android (und x86, glaube ich). Außerdem sind Audio und Video nicht das einzige, was webrtc tut, Sie können auch einen Datenkanal öffnen, um Dateien neben verschiedenen anderen kreativen Anwendungen Peer-to-Peer zu senden.

    – Kevin

    26. August 2014 um 5:47 Uhr

WebRTC verwendet RTP (ein UDP-basiertes Protokoll) für den Medientransport, erfordert jedoch einen Außerband-Signalisierungskanal, um die Kommunikation einzurichten. Eine Option für den Signalisierungskanal ist WebSocket.

Benutzer-Avatar
3.Eden

Anstatt von peerConnection Sie können sich auch den Entwurf des WebRTC-Datenkanals ansehen: https://datatracker.ietf.org/doc/html/draft-jesup-rtcweb-data-protocol-00 das ist im Grunde bidirektionales UDP. Das kann eine wirklich wertvolle Alternative zu WebSockets sein, da es nicht die “negativen” Seiten einer TCP-Verbindung hat.

  • wird dies von jedem Browser implementiert? Gibt es ein Beispiel?

    – Apps, die wichtig sind

    12. Oktober 2012 um 9:42 Uhr

  • @jjoe64 peerConnection ist bereits in Chrome und FireFox implementiert Beispiel hier: mozilla.github.com/webrtc-landing

    – gogaska

    21. November 2012 um 9:59 Uhr


  • Dazu muss eine Verbindung zwischen Browser und Server hergestellt werden (node.js). Nicht p2p

    – Apps, die wichtig sind

    22. November 2012 um 8:11 Uhr

  • Um eine Peer-to-Peer-Verbindung aufzubauen, müssen sich zunächst beide Peers „finden“. Dies geschieht über eine Signalisierung und optional über einen Stun/Turn-Server.

    – Kevin

    26. August 2014 um 5:50 Uhr

Nein, die Signalisierung wird nicht von WebRTC definiert.

Hier ist ein Beitrag der IETF, der ziemlich gut erklärt, warum dies nicht der Fall ist:
http://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html

Das bedeutet, dass Sie frei wählen können, wie Sie Netzwerkinformationen austauschen. Das heißt, Sie könnten Websockets, HTTP und sogar E-Mail verwenden, aber das wäre ein bisschen schwierig 🙂

1264680cookie-checkWebRTC und Websockets. Ist da ein Unterschied

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy