WebRTC vs WebSocket : pair à pair ou serveur

WebRTC vs WebSocket

WebRTC vs WebSocket (et webhooks, et HTTP) | We.Inc

WebRTC vs WebSocket : médias et data channels pair à pair contre un socket client-serveur, pourquoi WebRTC a toujours besoin de signalisation, plus webhook vs WebSocket et HTTP vs WebSocket.

Un WebSocket maintient une connexion bidirectionnelle entre un navigateur et votre serveur, et chaque message passe par ce serveur. WebRTC connecte les navigateurs directement entre eux pour l'audio, la vidéo et des données quelconques, chiffrées avec DTLS et SRTP. On les utilise souvent ensemble : un WebSocket transporte les messages de signalisation qui établissent l'appel WebRTC.

WebRTC et WebSocket comparés

Choisissez ce que vous construisez dans l'assistant ci-dessous et il indique la technologie adaptée, avec la raison. Il couvre aussi les deux questions souvent mélangées avec celle-ci : les webhooks, qui vont de serveur à serveur, et les simples requêtes HTTP.

Questions fréquentes

WebRTC remplace-t-il les WebSockets ?

Non. WebRTC n'a aucun moyen intégré pour que deux navigateurs se trouvent, il vous faut donc toujours un canal pour échanger les messages de mise en place. Un WebSocket est le choix habituel, même si MDN précise que n'importe quel transport convient.

WebRTC peut-il envoyer de simples données, pas seulement de la vidéo ?

Oui. RTCPeerConnection.createDataChannel() ouvre un canal pour du texte ou des données binaires entre pairs, et son API est volontairement proche de celle de WebSocket, avec send() et un événement message.

Quelle est la différence entre un webhook et un WebSocket ?

Un webhook est une requête HTTP qu'un serveur envoie à une URL sur un autre serveur quand un événement se produit, puis la connexion se termine. Un WebSocket est une connexion qui reste ouverte pour qu'un navigateur et un serveur continuent d'échanger.

Un WebSocket est-il plus rapide que HTTP ?

Pour beaucoup de petits messages, en général oui, puisque la négociation n'a lieu qu'une fois et que chaque message suivant évite les en-têtes de requête. Pour charger une page ou un fichier, le HTTP ordinaire est le bon outil et profite du cache.

WebRTC reste-t-il pair à pair avec beaucoup de participants dans un appel ?

Chaque connexion relie deux pairs, donc un maillage complet grossit vite à mesure que des personnes rejoignent. Beaucoup de produits d'appel plus importants font passer les médias par un serveur qui retransmet les flux, ce qui se situe hors de l'API WebRTC du navigateur elle-même.

Pourquoi WebRTC a toujours besoin d'un serveur

Webhook vs WebSocket

HTTP vs WebSocket

Mise en place de WebRTC via un WebSocket

Appelant : créer une offre et un data channel

Le WebSocket ne fait que transmettre les messages de mise en place. L'URL STUN est un exemple à remplacer par le serveur de votre choix.

Appelé : répondre et recevoir le canal

L'autre côté reçoit le canal via l'événement datachannel au lieu de le créer.

Un canal non ordonné, sans renvoi, pour l'état d'un jeu

maxRetransmits et maxPacketLifeTime ne peuvent pas être définis ensemble ; choisissez-en un.

Webhook vs WebSocket en un coup d'œil

Webhook vs WebSocket

HTTP vs WebSocket en un coup d'œil

HTTP vs WebSocket

Appel vidéo entre deux personnes

WebRTC, avec un WebSocket pour la signalisation

L'audio et la vidéo doivent aller directement d'un interlocuteur à l'autre avec peu de latence. Un petit serveur WebSocket ne transmet que l'offre, la réponse et les candidats pendant la mise en place.

Salon de discussion de groupe dans une application web

WebSocket

Les messages doivent être stockés, modérés et envoyés à tous les membres du salon, ils ont donc de toute façon leur place sur votre serveur. Un socket par utilisateur est la solution simple.

Envoyer un gros fichier vers le navigateur d'un ami

Data channel WebRTC

Un data channel fiable et ordonné transfère les octets de pair à pair, donc votre serveur ne stocke ni ne relaie jamais le fichier, sauf si TURN est nécessaire.

Coups rapides d'un jeu à deux joueurs

Data channel WebRTC, non ordonné

Sans ordre ni renvoi, une mise à jour de position perdue est ignorée au lieu de retarder les plus récentes. Si vous avez besoin d'un serveur arbitre, utilisez plutôt un WebSocket vers celui-ci.

Un prestataire de paiement confirme une commande

Webhook

Le serveur du prestataire appelle une URL sur votre serveur quand le paiement réussit. Aucun navigateur n'intervient, et rien n'a besoin de rester ouvert.

Charger une page produit et ses données

HTTP simple

Une requête et une réponse suffisent, et les réponses GET peuvent être mises en cache. Une connexion persistante ajouterait un coût sans aucun bénéfice.

Que construisez-vous ?

Choisir une fonctionnalité

Utilisez

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site