WebRTC vs WebSocket: Peers oder ein Server

WebRTC vs WebSocket

WebRTC vs WebSocket (und Webhooks und HTTP) | We.Inc

WebRTC vs WebSocket: Peer-to-Peer-Medien und Datenkanäle im Vergleich zu einem Client-Server-Socket, warum WebRTC trotzdem Signaling braucht, dazu Webhook vs WebSocket und HTTP vs WebSocket.

Ein WebSocket hält eine einzige Zwei-Wege-Verbindung zwischen einem Browser und deinem Server offen, und jede Nachricht läuft über diesen Server. WebRTC verbindet Browser direkt miteinander für Audio, Video und beliebige Daten, verschlüsselt mit DTLS und SRTP. Oft werden beide zusammen eingesetzt: Ein WebSocket überträgt die Signaling-Nachrichten, die den WebRTC-Anruf aufbauen.

WebRTC und WebSocket im Vergleich

Wähle im Helfer unten aus, was du baust, und er nennt dir die passende Technologie samt Begründung. Außerdem behandelt er die beiden Fragen, die oft mit dieser vermischt werden: Webhooks, die von Server zu Server laufen, und einfache HTTP-Anfragen.

Häufige Fragen

Ersetzt WebRTC WebSockets?

Nein. WebRTC hat keinen eingebauten Weg, wie zwei Browser einander finden, also brauchst du trotzdem einen Kanal, um die Aufbau-Nachrichten auszutauschen. Ein WebSocket ist die übliche Wahl, auch wenn MDN anmerkt, dass jeder Transportweg funktioniert.

Kann WebRTC auch reine Daten senden, nicht nur Video?

Ja. RTCPeerConnection.createDataChannel() öffnet einen Kanal für Text- oder Binärdaten zwischen Peers, und die API ist bewusst an die WebSocket-API angelehnt, mit send() und einem message-Event.

Was ist der Unterschied zwischen einem Webhook und einem WebSocket?

Ein Webhook ist eine HTTP-Anfrage, die ein Server an eine URL auf einem anderen Server sendet, wenn ein Ereignis eintritt, danach endet die Verbindung. Ein WebSocket ist eine Verbindung, die offen bleibt, damit Browser und Server weiter miteinander sprechen können.

Ist ein WebSocket schneller als HTTP?

Bei vielen kleinen Nachrichten meistens ja, weil der Handshake nur einmal stattfindet und jede spätere Nachricht ohne Request-Header auskommt. Zum Laden einer Seite oder Datei ist normales HTTP das richtige Werkzeug und profitiert vom Caching.

Ist WebRTC auch mit vielen Teilnehmern in einem Anruf Peer to Peer?

Jede Verbindung besteht zwischen zwei Peers, daher wächst ein vollständiges Mesh schnell, wenn Leute dazukommen. Viele größere Anrufprodukte leiten Medien stattdessen über einen Server, der Streams weiterreicht, und das liegt außerhalb der WebRTC-Browser-API selbst.

Warum WebRTC trotzdem einen Server braucht

Webhook vs WebSocket

HTTP vs WebSocket

WebRTC-Aufbau über einen WebSocket

Anrufer: ein Offer und einen Datenkanal erstellen

Der WebSocket leitet nur Aufbau-Nachrichten weiter. Die STUN-URL ist ein Platzhalter für den Server deiner Wahl.

Angerufener: antworten und den Kanal empfangen

Die andere Seite erhält den Kanal über das datachannel-Event, statt ihn selbst zu erstellen.

Ein ungeordneter Kanal ohne Wiederholungen für den Spielzustand

maxRetransmits und maxPacketLifeTime können nicht beide gesetzt werden, wähle eins davon.

Webhook vs WebSocket auf einen Blick

Webhook vs WebSocket

HTTP vs WebSocket auf einen Blick

HTTP vs WebSocket

Videoanruf zwischen zwei Personen

WebRTC, mit einem WebSocket für das Signaling

Audio und Video sollten mit geringer Verzögerung direkt zwischen den Anrufern laufen. Ein kleiner WebSocket-Server reicht beim Aufbau nur Offer, Answer und Kandidaten weiter.

Gruppen-Chatraum in einer Web-App

WebSocket

Nachrichten müssen gespeichert, moderiert und an alle im Raum gesendet werden, sie gehören also ohnehin auf deinen Server. Ein Socket pro Nutzer ist die einfache Lösung.

Eine große Datei an den Browser eines Freundes senden

WebRTC-Datenkanal

Ein zuverlässiger, geordneter Datenkanal überträgt die Bytes Peer to Peer, sodass dein Server die Datei nie speichert oder weiterleitet, außer TURN wird benötigt.

Schnelle Spielzüge für zwei Spieler

WebRTC-Datenkanal, ungeordnet

Ohne Reihenfolge und ohne Wiederholungen wird ein verlorenes Positions-Update übersprungen, statt neuere aufzuhalten. Brauchst du einen Schiedsrichter-Server, nutze stattdessen einen WebSocket zu ihm.

Zahlungsanbieter bestätigt eine Bestellung

Webhook

Der Server des Anbieters ruft eine URL auf deinem Server auf, wenn die Zahlung erfolgreich ist. Kein Browser ist beteiligt, und nichts muss offen bleiben.

Eine Produktseite und ihre Daten laden

Normales HTTP

Anfrage und Antwort reichen völlig, und GET-Antworten können gecacht werden. Eine dauerhafte Verbindung würde Kosten verursachen und nichts bringen.

Was baust du?

Wähle eine Funktion

Nutze

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap