Qu'est-ce que WebRTC ?
Published: 2024-03-05 21:26:56

### Définition de WebRTC

[WebRTC](https://webrtc.org/)(Web Real-Time Communication) est un projet à code source ouvert qui permet la communication en temps réel, d'égal à égal, de données, d'audio et de vidéo entre deux points d'extrémité, tels que des navigateurs web ou des applications, à l'aide d'API JavaScript. Cette technologie a connu des avancées et des améliorations significatives depuis sa création, notamment une meilleure traversée des réseaux, un meilleur flux de données et des capacités de bande passante. Grâce à ses fonctionnalités robustes, le WebRTC a été largement adopté dans divers secteurs, notamment l'apprentissage en ligne, la [télésanté](https://www.pubnub.com/solutions/digital-health/) et les [outils de collaboration en temps réel](https://www.pubnub.com/solutions/multiuser-collaboration/), ce qui consolide sa position sur le marché actuel.

### Historique de WebRTC

WebRTC a été lancé pour la première fois en 2011 par Google et, au fil du temps, a reçu le soutien de grandes entreprises telles qu'Apple, Microsoft, Mozilla et Opera. Sa compatibilité avec les navigateurs mobiles et de bureau tels que Google Chrome, Safari, Mozilla Firefox, Edge et d'autres, permet aux développeurs d'intégrer des capacités de communication directement dans les applications basées sur le navigateur ou les applications mobiles sans avoir besoin de plugins supplémentaires.

Ces dernières années, le WebRTC a connu une forte croissance en raison des progrès de la connectivité internet et de la demande d'applications de communication en temps réel. Son évolution continue témoigne des efforts de collaboration de la communauté technologique, notamment des entreprises, des contributeurs indépendants et des organismes de normalisation.

### Cas d'utilisation courants de WebRTC

WebRTC répond à de nombreux cas d'utilisation, depuis les appels audio et vidéo en temps réel jusqu'au partage de fichiers peer-to-peer, en passant par le chat. Les progrès technologiques ont encore élargi l'application de WebRTC aux soins de santé, aux plateformes de diffusion en direct et à la vidéoconférence :

-   Chat d'assistance à la clientèle dans le navigateur ou dans l'application, désormais enrichi de fonctions telles que le partage d'écran et les annotations en temps réel.
    
-   Les applications de télémédecine facilitent les appels vidéo/audio entre le médecin et le patient, facilitent la communication vidéo, prennent désormais en charge les flux haute définition et les canaux de données sécurisés pour le partage des dossiers médicaux.
    
-   Le partage de fichiers en peer-to-peer est désormais capable de gérer des fichiers plus volumineux et des vitesses de transfert plus rapides.
    
-   Plateformes de jeux en temps réel et de diffusion en direct, grâce aux capacités de diffusion en continu à faible latence de WebRTC.
    
-   Outils de collaboration comprenant des conférences vidéo et audio en direct, l'édition de documents, etc.
    

![](https://www.pubnub.com/cdn/3prze68gbwl1/6RGxRNvHpjDnS55Yackzm8/5c5d8953204d4735a8e1c9ba5fc23859/PeertoPeer.jpg)

### Comment fonctionne WebRTC ?

WebRTC fonctionne en connectant deux navigateurs par l'intermédiaire de la connexion RTCPeerConnection, facilitée par des protocoles de signalisation tels que le protocole de description de session (SDP). Des procédures de traversée de réseau telles que les protocoles STUN (Session Traversal Utilities for NAT) et TURN (Traversal Using Relays around NAT) ont été incorporées dans le mécanisme de fonctionnement de WebRTC pour gérer la connectivité dans différents scénarios de réseau. Il s'agit notamment d'établir une connexion directe, même à travers des pare-feu ou des NAT, de déterminer les adresses IP publiques et de relayer les données si nécessaire à l'aide de serveurs TURN.

### Utilisation de WebRTC via RTCPeerConnection

WebRTC fournit une interface RTCPeerConnection pour établir une connexion d'égal à égal. La RTCPeerConnection permet d'établir une connexion avec une faible latence, des appels vocaux et vidéo de haute qualité, en gérant le traitement du signal, le codec, la communication d'égal à égal, la sécurité et la gestion de la bande passante. Des méthodes supplémentaires telles que getStats() ont été introduites pour récupérer des données statistiques sur la connexion, aidant ainsi les développeurs à surveiller et à optimiser les performances de l'appel.

### Comment utiliser WebRTC via RTCDataChannel et MediaStream ?

WebRTC permet l'échange de données par l'intermédiaire du canal de données RTCDataChannel, un composant de la connexion RTCPeerConnection. L'API RTCDataChannel permet la communication bidirectionnelle de données arbitraires entre pairs. Elle utilise le protocole SCTP (Stream Control Transmission Protocol), qui assure un transfert de données fiable et sécurisé et ouvre la voie à des cas d'utilisation possibles tels que le partage direct de fichiers et les jeux en temps réel. L'API MediaStream, également connue sous le nom de getUserMedia, permet d'accéder aux caméras et aux microphones locaux, avec le consentement de l'utilisateur. Des mises à jour récentes permettent un contrôle plus granulaire des flux de médias, comme l'ajustement de la résolution vidéo, de la fréquence d'images et de la qualité audio.

**Comment utiliser PubNub et WebRTC pour créer des applications ?**
-------------------------------------------------------------------

![](https://www.pubnub.com/cdn/3prze68gbwl1/4QbGEgmhK9dXPOVj0XHIiv/4a6775807145a9efcd70e83e638a2f30/WebRTC-Diagram.png)

Au départ, vous avez besoin d'un moyen de transférer le SDP du navigateur A au navigateur B. Le réseau PubNub peut être utilisé comme serveur de signalisation pour ces applications. Des fonctions telles que la présence et le stockage/lecture peuvent également être utilisées pour améliorer ces applications.

Lorsqu'il appelle un autre utilisateur par l'intermédiaire d'un protocole ou d'une application WebRTC, l'appelant doit savoir si l'appelé est actuellement en ligne ou hors ligne, quel appareil il utilise, s'il est disponible pour accepter l'appel, etc.

La présence vous donne toutes ces informations et vous permet de montrer aux utilisateurs avec lesquels ils peuvent se connecter. C'est essentiel pour la signalisation, afin d'éviter que des utilisateurs n'essaient de se connecter à d'autres utilisateurs qui ne sont pas disponibles.

### Note sur le protocole WebRTC et l'envoi de SMS

Le protocole WebRTC n'offre pas de capacités de stockage et, par conséquent, il n'y a pas d'enregistrement des messages envoyés. En particulier, avec le chat textuel, les utilisateurs s'attendent à avoir un historique des conversations précédentes. Les fonctionnalités de PubNub [Stockage/Lecture](https://www.pubnub.com/blog/getting-started-swift-pubnub-storage-playback-presence/) de PubNub permet aux utilisateurs de consulter l'historique des conversations passées sur une période donnée.

En résumé, PubNub fournit :

-   Signalisation SDP
    
-   [Statut de présence](https://www.pubnub.com/how-to/admin-portal-presence/)
    
-   Le stockage des messages de chat
    

WebRTC vs. WebSockets
---------------------

[Les WebSockets](https://www.pubnub.com/blog/what-are-websockets/) fournissent un protocole de communication full-duplex basé sur TCP entre le client et le serveur. À l'inverse, WebRTC prend en charge les échanges poste à poste sur UDP, ce qui permet des flux de données vidéo et audio en temps réel. La distinction entre WebRTC et WebSockets est devenue plus importante avec la demande croissante d'applications en temps réel, ce qui a incité de nombreux développeurs à exploiter les atouts uniques des deux technologies.

**Comment utiliser l'audio et la vidéo avec WebRTC ?**
------------------------------------------------------

Avec WebRTC, la communication vidéo et vocale peut être facilement mise en œuvre sur n'importe quel site web. Cela ajoute des niveaux avancés d'interaction à un site web, permettant aux utilisateurs de communiquer en contexte et en temps réel, soit avec les opérateurs du site, soit entre eux. De telles capacités sont plus souhaitables que les limitations actuelles qui obligent les utilisateurs à appeler un numéro, à télécharger un plugin ou à quitter votre site web. Par exemple, le site web d'une institution financière pourrait facilement intégrer une application de communication WebRTC pour permettre aux utilisateurs de parler rapidement à un représentant financier (plutôt que de les obliger à utiliser leur téléphone pour parler sans fin à un représentant automatisé).

Un autre exemple de WebRTC avec voix et vidéo serait une application de chat vidéo de type Skype, qui peut être utilisée entièrement dans le navigateur web. Cela signifie que les utilisateurs finaux n'ont pas besoin d'installer de logiciels ou de plugins, et qu'ils peuvent facilement se connecter l'un à l'autre, par le biais d'un chat vidéo, audio et textuel, de navigateur à navigateur. Nous avons créé [WebRTC.co, une application de chat vidéo en JavaScript](https://www.pubnub.com/blog/integrating-video-calling-in-chat-with-webrtc-and-pubnub/) qui fonctionne entièrement sur [WebRTC et PubNub](https://github.com/stephenlb/webrtc-sdk).

![](https://www.pubnub.com/cdn/3prze68gbwl1/3hU9HWjdkEj3Y15NfmostG/aa805363e6a0d2afe4b1d365e1625201/WebRTCSkype.png)

**Quel est l'avenir de WebRTC ?**
---------------------------------

En tant que service vidéo et de données, WebRTC est pratiquement là pour rester ; avec l'adhésion des principaux acteurs du secteur des navigateurs et l'engagement de maintenir les API mobiles et de bureau à jour, vous trouverez de plus en plus d'applications visant à maintenir les consommateurs sur la plateforme avec des outils qui prennent en charge les chats vidéo pour des services tels que les rencontres, les [jeux](https://www.pubnub.com/solutions/gaming/) et les soins de santé.

#### Sommaire

[Définition de WebRTCHistoire de](#h-0)[WebRTCCas d'utilisation](#h-2)[courants](#h-1)[de WebRTCComment](#h-2)[fonctionne WebRTC ?](#h-3)[Utilisation de WebRTC via RTCPeerConnectionComment](#h-4)[utiliser WebRTC via RTCDataChannel & MediaStreamComment](#h-5)[utiliser PubNub et WebRTC pour construire des](#h-6)[applicationsNote sur le protocole WebRTC et le textingWebRTC](#h-7)[vs. WebSocketsComment](#h-8)[utiliser l'audio et la vidéo avec WebRTCQuel](#h-9)[est l'avenir de WebRTC ?](#h-10)

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com](https://www.pubnub.com/blog/what-is-webrtc/)

Notre plateforme aide les développeurs à construire, livrer et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).