50 votes

WebRTC et Websockets. Y a-t-il une différence

Je suppose que WebRTC est une API qui décode/encode l'audio et la vidéo, bien que la communication entre le serveur et les clients se fasse via des sockets web, ou un autre protocole réseau ? Je suis un peu perdu. Le WebRTC dispose-t-il de son propre protocole de communication ?

83voto

josh3736 Points 41911

Le WebRTC a deux facettes.

  1. APIs JavaScript ( getUserMedia ) qui permettent à une application d'accéder au matériel de la caméra et du microphone. Vous pouvez utiliser cet accès pour afficher simplement le flux en local (peut-être appliquer les effets ), ou envoyer le flux sur le réseau. Vous pouvez envoyer les données vers votre serveur, ou vous pouvez utiliser...
  2. PeerConnection une API qui permet aux navigateurs d'établir poste-à-poste direct les connexions de prises. Vous pouvez établir une connexion directe avec le navigateur d'un autre utilisateur et échanger des données directement. C'est très utile pour les données à large bande passante comme la vidéo, où vous ne voulez pas que votre serveur ait à relayer de grandes quantités de données.

Jetez un coup d'œil à les démos pour voir les deux parties du WebRTC en action.

Donc, en résumé :

  • Les WebSockets permettent une communication en duplex intégral entre un navigateur et un serveur web.
  • WebRTC PeerConnection permet une communication full-duplex entre deux navigateurs.

13voto

oberstet Points 7409

WebRTC utilise RTP (un protocole basé sur UDP) pour le transport des médias, mais nécessite un canal de signalisation hors bande pour établir la communication. Une option pour le canal de signalisation est WebSocket.

4voto

3rdEden Points 2697

Au lieu de peerConnection vous pouvez également consulter le projet de canal de données WebRTC : https://datatracker.ietf.org/doc/html/draft-jesup-rtcweb-data-protocol-00 qui est en fait un udp bidirectionnel. Ce qui peut être une alternative très intéressante aux WebSockets car il n'y a pas les côtés "négatifs" d'une connexion tcp.

2voto

Felix Hagspiel Points 140

Non, la signalisation n'est pas définie par le WebRTC.

Voici un article de l'IETF qui explique assez bien pourquoi ce n'est pas le cas : http://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html

Cela signifie que vous êtes libre de choisir la manière dont vous échangez les informations du réseau. Vous pouvez utiliser les websockets, le HTTP et même le courrier électronique, mais ce serait un peu difficile :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X