WebRTC vs WebSocket: peer o server

WebRTC vs WebSocket

WebRTC vs WebSocket (e webhook, e HTTP) | We.Inc

WebRTC vs WebSocket: media e data channel peer-to-peer contro un socket client-server, perché WebRTC ha comunque bisogno di signaling, più webhook vs WebSocket e HTTP vs WebSocket.

Un WebSocket mantiene una connessione bidirezionale tra un browser e il tuo server, e ogni messaggio passa da quel server. WebRTC collega i browser direttamente tra loro per audio, video e dati arbitrari, cifrati con DTLS e SRTP. Spesso si usano insieme: un WebSocket trasporta i messaggi di signaling che avviano la chiamata WebRTC.

WebRTC e WebSocket a confronto

Scegli cosa stai costruendo nello strumento qui sotto e ti indica la tecnologia adatta, con il motivo. Copre anche le due domande che spesso si confondono con questa: i webhook, che vanno da server a server, e le semplici richieste HTTP.

Domande frequenti

WebRTC sostituisce i WebSocket?

No. WebRTC non ha un modo integrato perché due browser si trovino, quindi serve comunque un canale per scambiare i messaggi di configurazione. Un WebSocket è la scelta abituale, anche se MDN fa notare che va bene qualsiasi trasporto.

WebRTC può inviare semplici dati, non solo video?

Sì. RTCPeerConnection.createDataChannel() apre un canale per dati testuali o binari tra peer, e la sua API è volutamente simile a quella di WebSocket, con send() e un evento message.

Qual è la differenza tra un webhook e un WebSocket?

Un webhook è una richiesta HTTP che un server invia a un URL su un altro server quando si verifica un evento, poi la connessione termina. Un WebSocket è una connessione che resta aperta così un browser e un server possono continuare a parlarsi.

Un WebSocket è più veloce di HTTP?

Per tanti messaggi piccoli di solito sì, perché l'handshake avviene una volta sola e ogni messaggio successivo evita gli header di richiesta. Per caricare una pagina o un file, il normale HTTP è lo strumento giusto e sfrutta la cache.

WebRTC è peer to peer anche con molte persone in chiamata?

Ogni connessione è tra due peer, quindi una mesh completa cresce rapidamente man mano che le persone si uniscono. Molti prodotti per chiamate più grandi instradano il media tramite un server che inoltra gli stream, che resta fuori dall'API WebRTC del browser.

Perché WebRTC ha comunque bisogno di un server

Webhook vs WebSocket

HTTP vs WebSocket

Configurazione WebRTC tramite un WebSocket

Chiamante: crea un'offer e un data channel

Il WebSocket inoltra solo i messaggi di configurazione. L'URL STUN è un segnaposto per il server che scegli.

Chiamato: rispondi e ricevi il canale

L'altro lato riceve il canale tramite l'evento datachannel invece di crearlo.

Un canale non ordinato e senza ritrasmissioni per lo stato di gioco

maxRetransmits e maxPacketLifeTime non possono essere impostati entrambi; scegline uno.

Webhook vs WebSocket in sintesi

Webhook vs WebSocket

HTTP vs WebSocket in sintesi

HTTP vs WebSocket

Videochiamata tra due persone

WebRTC, con un WebSocket per il signaling

Audio e video devono andare direttamente tra i partecipanti con poco ritardo. Un piccolo server WebSocket passa solo offer, answer e candidati durante la configurazione.

Chat di gruppo in una web app

WebSocket

I messaggi vanno salvati, moderati e inviati a tutti nella stanza, quindi stanno comunque sul tuo server. Un socket per utente è la soluzione semplice.

Inviare un file grande al browser di un amico

Data channel WebRTC

Un data channel affidabile e ordinato sposta i byte peer to peer, così il tuo server non salva né inoltra mai il file, a meno che serva TURN.

Mosse veloci in un gioco a due

Data channel WebRTC, non ordinato

Con ordered disattivato e nessuna ritrasmissione, un aggiornamento di posizione perso viene saltato invece di bloccare quelli più recenti. Se ti serve un server arbitro, usa invece un WebSocket verso di esso.

Il provider di pagamenti conferma un ordine

Webhook

Il server del provider chiama un URL sul tuo server quando il pagamento va a buon fine. Nessun browser è coinvolto e niente deve restare aperto.

Caricare una pagina prodotto e i suoi dati

Semplice HTTP

Richiesta e risposta bastano, e le risposte GET possono essere messe in cache. Una connessione persistente aggiungerebbe costi senza benefici.

Cosa stai costruendo?

Scegli una funzionalità

Usa

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito