Sur Internet, la principale pile de protocoles est. Protocoles et normes réseau. Piles de protocoles de communication standard

Les internautes européens sont divisés en deux parties : selon une enquête de l'Institut de recherche sur l'opinion publique d'Allenbach (Allemagne), les systèmes Skype, chat et messagerie instantanée font désormais partie intégrante de la vie quotidienne de 16,5 millions d'adultes et d'enfants, dont 9 millions utilisent ces services cas après cas, et 28 millions n’y touchent pas.

Cela peut changer à mesure que Firefox intègre désormais technologie de communication en temps réel (WebRTC), ainsi que le client lui-même. Démarrer un chat audio et vidéo n’est désormais pas plus difficile que d’ouvrir un site Web. Des services tels que Facebook et Skype, en revanche, s'appuient sur des solutions utilisant un client distinct et créant un compte.

WebRTC ne se distingue pas seulement par sa facilité d'utilisation. Cette méthode vous permet même d'installer connexion directe entre deux navigateurs. De cette façon, les données audio et vidéo ne transitent pas par un serveur où il pourrait y avoir une surcharge ou où l'administrateur n'est pas particulièrement sensible à la confidentialité ou à la protection des données. Grâce à la connexion directe, WebRTC ne nécessite aucune inscription ni compte auprès d'aucun service.

Pour démarrer une conversation, il vous suffit de suivre le lien. La communication reste privée, puisque le flux de données est crypté. Google a commencé à s'engager activement dans la communication en temps réel via le navigateur en 2011, lorsqu'il a publié le code source de son implémentation WebRTC.

Peu de temps après, Chrome et Firefox ont reçu leurs propres moteurs WebRTC. Actuellement, leurs versions mobiles sont équipées à la fois de cette technologie et du moteur WebView 3.6 installé avec Android 5.0, utilisé par les applications.

Pour une communication en temps réel, des interfaces JavaScript appropriées doivent être implémentées dans la visionneuse Web. Avec GetUserMedia, le logiciel permet la capture à partir de sources audio et vidéo, c'est-à-dire webcam et microphone. RTCPeerConnection est responsable de l'établissement de la connexion ainsi que de la communication elle-même.

Parallèlement à l'intégration du navigateur, un groupe de travail du World Wide Web Consortium (W3C) a accéléré le processus de standardisation du WebRTC. Il devrait être achevé en 2015.

WebRTC se contente de peu

L'utilisation du service WebRTC ne nécessite pas beaucoup de ressources, puisque le serveur connecte uniquement les interlocuteurs. Établir une connexion n’est pas non plus particulièrement difficile. Tout d'abord, le navigateur signale au serveur WebRTC qu'il envisage de lancer un appel. Il reçoit un lien HTTPS du serveur – la communication est cryptée. L'utilisateur envoie ce lien à son interlocuteur. Le navigateur demande ensuite à l'utilisateur l'autorisation d'accéder à la webcam et au microphone.

Pour établir une connexion streaming directe avec l'interlocuteur, le navigateur reçoit son adresse IP et ses données de configuration du service WebRTC. Le visualiseur Web de l’autre personne fait de même.

Pour que la connexion streaming fonctionne correctement et de bonne qualité, trois moteurs fonctionnent dans le navigateur. Deux d'entre eux optimisent et compressent les données audio et vidéo, le troisième se charge de leur transport. Il envoie des données via Protocole SRTP(Secure Real-time Transport Protocol), qui permet un streaming crypté en temps réel.

Si une connexion directe ne peut pas être établie, WebRTC recherche un autre chemin. Par exemple, cela se produit lorsque les paramètres réseau empêchent le serveur STUN de pouvoir signaler l'adresse IP. Le standard WebRTC stipule que dans ce cas la conversation aura lieu, mais avec l'activation intermédiaire du serveur TURN (Traversal Using Relays around NAT). Ainsi, sur le site netscan.co, vous pouvez vérifier si WebRTC est implémenté sur votre ordinateur et avec votre accès au réseau.

Comment se fait la connexion

Vous devez d'abord enregistrer la conversation (1). Le service WebRTC fournit un lien qui doit être envoyé à l'interlocuteur. Le navigateur, à l’aide du serveur STUN, découvre sa propre adresse IP (2), l’envoie au service et reçoit l’IP du partenaire pour établir une connexion directe (3). Si STUN échoue, la conversation est redirigée via le serveur TURN (4).

La communication utilisant la technologie WebRTC dans le navigateur est lancée à l'aide du code JavaScript. Après cela, trois moteurs sont responsables de la communication : les moteurs voix et vidéo collectent les données multimédia de la webcam et du microphone, et le moteur de transport combine les informations et envoie le flux sous forme cryptée à l'aide du SRTP (Secure Real-time Protocol).

Quels navigateurs fonctionnent avec WebRTC

Chrome et Firefox disposent d'un moteur WebRTC qui utilise des services comme talky.io. Le navigateur de Mozilla peut fonctionner directement avec son propre client.

Google et Mozilla continuent de développer l'idée de communication en temps réel : Chrome peut héberger des conférences WebRTC avec plusieurs participants, et le nouveau client Hello de Firefox a été développé en collaboration avec une filiale du géant des télécommunications Telefonica. Apple reste à l'écart pour le moment ; vous ne devriez pas encore vous attendre à WebRTC dans Safari. Cependant, il existe de nombreuses applications iOS alternatives et plugins Safari.

Microsoft suit une voie légèrement différente. En tant que propriétaire du service concurrent Skype, cette société ne va pas capituler si facilement face au WebRTC. Au lieu de cela, Microsoft développe une technologie appelée ORTC (Object Real-Time Communications) pour Internet Explorer.

Les différences par rapport au WebRTC, telles que les différents codecs et protocoles pour établir le contact avec le serveur, sont mineures et, au fil du temps, elles évolueront très probablement vers un ajout à la norme WebRTC incluant ces différences. Ainsi, seul Apple est laissé pour compte - comme d'habitude.

Photo: entreprises de fabrication; goodluz/Fotolia.com

Aujourd'hui, WebRTC est la technologie « chaude » pour le streaming audio et vidéo dans les navigateurs. Les technologies conservatrices, telles que HTTP Streaming et Flash, sont plus adaptées à la diffusion de contenus enregistrés (vidéo à la demande) et sont nettement inférieures au WebRTC en termes de diffusion en temps réel et en ligne, c'est-à-dire où une latence vidéo minimale est requise pour permettre aux téléspectateurs de voir ce qui se passe « en direct ».

La possibilité d'une communication en temps réel de haute qualité vient de l'architecture WebRTC elle-même, où le protocole UDP est utilisé pour transporter les flux vidéo, qui constitue la base standard pour la transmission de vidéo avec des délais minimes et est largement utilisé dans les systèmes de communication en temps réel.

La latence de communication est importante dans les systèmes de diffusion en ligne, les webinaires et autres applications qui nécessitent une communication interactive avec la source vidéo, les utilisateurs finaux et nécessitent une solution.

Une autre bonne raison d’essayer WebRTC est qu’il s’agit définitivement d’une tendance. Aujourd'hui, tous les navigateurs Android Chrome prennent en charge cette technologie, qui garantit que des millions d'appareils sont prêts à regarder la diffusion sans installer de logiciel ou de configuration supplémentaire.

Afin de tester la technologie WebRTC en action et de lancer une simple diffusion en ligne dessus, nous avons utilisé le logiciel serveur Flashphoner WebRTC Media & Broadcasting Server. Les fonctionnalités indiquent la possibilité de diffuser des flux WebRTC en mode un-à-plusieurs, ainsi que la prise en charge des caméras IP et des systèmes de vidéosurveillance via le protocole RTSP ; Dans cette revue, nous nous concentrerons sur les diffusions web-web et leurs fonctionnalités.

Installation du serveur de médias et de diffusion WebRTC

Comme il n’existait pas de version du serveur pour le système Windows et que je ne souhaitais pas installer une machine virtuelle comme VMWare+Linux, je ne pouvais pas tester les diffusions en ligne sur mon ordinateur Windows personnel. Pour gagner du temps, nous avons décidé de prendre une instance sur l'hébergement cloud comme celle-ci :

Il s'agissait de Centos x86_64 version 6.5 sans aucun logiciel préinstallé dans le centre de données d'Amsterdam. Ainsi, tout ce dont nous disposons est le serveur et l'accès ssh à celui-ci. Pour ceux qui connaissent les commandes de la console Linux, l'installation d'un serveur WebRTC promet d'être simple et indolore. Alors ce que nous avons fait :

1. Télécharger les archives :

$wget https://site/download-wcs5-server.tar.gz

2. Déballer:

$tar -xzf download-wcs5-server.tar.gz

3. Installer:

$cd FlashphonerWebCallServer

Lors de l'installation, saisissez l'adresse IP du serveur : XXX.XXX.XXX.XXX

4. Activer la licence :

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. Démarrez le serveur WCS :

$service démarrage du serveur d'appels Web

6. Journal de vérification :

$tail - f /usr/local/FlashphonerWebCallServer/logs/flashphoner_manager.log

7. Vérifiez que les deux processus sont en place :

$ps aux | grep Flashphoner

Le processus d'installation est terminé.

Test des diffusions en ligne WebRTC

Tester les émissions s’est avéré simple. En plus du serveur, il existe un client Web composé d'une douzaine de fichiers Javascript, HTML et CSS et que nous avons déployé dans le dossier /var/www/html lors de la phase d'installation. La seule chose à faire était de saisir l'adresse IP du serveur dans la configuration flashphoner.xml afin que le client Web puisse établir une connexion avec le serveur via des Websockets HTML5. Décrivons le processus de test.

1. Ouvrez la page du client de test index.html dans le navigateur Chrome :

2. Pour démarrer la diffusion, vous devez cliquer sur le bouton « Démarrer » au milieu de l'écran.
Avant de faire cela, vous devez vous assurer que la webcam est connectée et prête à être utilisée. Il n'y a pas d'exigences particulières pour la webcam ; par exemple, nous avons utilisé une caméra standard intégrée à un ordinateur portable avec une résolution de 1280x800.

Le navigateur Chrome demandera certainement l'accès à la caméra et au microphone afin que l'utilisateur comprenne que sa vidéo sera envoyée au serveur Internet et l'autorise.

3. L'interface représente une diffusion réussie du flux vidéo de la caméra vers le serveur WebRTC. Dans le coin supérieur droit, un indicateur indique que le flux va vers le serveur ; dans le coin inférieur se trouve un bouton « Stop » pour arrêter l'envoi de la vidéo.

Veuillez noter le lien dans la case ci-dessous. Il contient un identifiant unique pour ce flux, afin que tout le monde puisse participer au visionnage. Ouvrez simplement ce lien dans votre navigateur. Pour le copier dans le presse-papiers, cliquez sur le bouton « Copier ».

Dans des applications réelles comme les webinaires, les conférences, les diffusions vidéo en ligne ou la télévision interactive, les développeurs devront mettre en œuvre la distribution de cet identifiant à certains groupes de téléspectateurs afin qu'ils puissent se connecter aux flux souhaités, mais c'est déjà la logique de l'application. . Serveur de médias et de diffusion WebRTC ne l'affecte pas, mais distribue uniquement des vidéos.

5. La connexion est établie et le spectateur voit le flux sur l'écran. Il peut désormais envoyer un lien à quelqu'un d'autre, arrêter la lecture du flux ou activer le mode plein écran à l'aide des commandes situées dans le coin inférieur droit.

Résultats des tests du serveur de diffusion en ligne WebRTC

Lors des tests, la latence semblait parfaite. Le ping vers le centre de données était d'environ 100 millisecondes et le délai était invisible à l'œil nu. A partir de là, nous pouvons supposer que le délai réel est le même de 100 plus ou moins quelques dizaines de millisecondes pour le temps de mise en mémoire tampon. Par rapport à la vidéo Flash : dans de tels tests, Flash ne se comporte pas aussi bien que WebRTC. Ainsi, si vous déplacez votre main sur un réseau similaire, le mouvement sur l'écran n'est visible qu'après une ou deux secondes.

Concernant la qualité, on note que les cubes peuvent parfois se distinguer par des mouvements. Ceci est cohérent avec la nature du codec VP8 et son objectif principal : fournir une communication vidéo en temps réel avec une qualité acceptable et sans retards de communication.

Le serveur est assez simple à installer et à configurer, son fonctionnement ne nécessite aucune compétence sérieuse autre que la connaissance de Linux au niveau d'un utilisateur avancé qui peut exécuter des commandes depuis la console via ssh et utiliser un éditeur de texte. En conséquence, nous avons réussi à établir une diffusion en ligne un-à-plusieurs entre les navigateurs. La connexion de téléspectateurs supplémentaires au flux n’a également posé aucun problème.

La qualité de diffusion s'est avérée tout à fait acceptable pour les webinaires et les diffusions en ligne. La seule chose qui a soulevé quelques questions était la résolution vidéo. La caméra prend en charge 1280x800, mais la résolution de l'image de test est très similaire à 640x480. Apparemment, cette question doit être clarifiée avec les développeurs.

Vidéo sur les tests diffusés depuis une webcam
via le serveur WebRTC

Préambule. Chat vidéo P2P sur le socle WebRTC est une alternative à Skype et à d’autres moyens de communication. Les principaux éléments du chat vidéo p2p basé sur WebRTC sont navigateur et contacter le serveur. Les chats vidéo P2P sont des chats vidéo peer-to-peer dans lesquels le serveur ne participe pas à la transmission des flux d'informations. Les informations sont transférées directement entre les navigateurs des utilisateurs (pairs) sans aucun programme supplémentaire. En plus des navigateurs, les chats vidéo p2p utilisent des serveurs de contacts conçus pour enregistrer les utilisateurs, stocker des données les concernant et assurer la commutation entre les utilisateurs. Les navigateurs prenant en charge les dernières technologies WebRTC et HTML5 permettent la messagerie instantanée et la transmission de fichiers, ainsi que la communication vocale et vidéo sur les réseaux IP.

Ainsi, les chats, les chats Web, les chats vocaux et vidéo dans une interface Web, IMS, VoIP sont des services qui fournissent des communications en ligne via des réseaux composites à commutation de paquets. En règle générale, les services de communication nécessitent soit l'installation d'applications clientes sur les appareils des utilisateurs (PC, smartphones, etc.), soit l'installation de plugins et d'extensions dans les navigateurs. Les services disposent de leurs propres réseaux de communication, dont la plupart reposent sur une architecture client-serveur.

Les services de communication sont des applications autres qu'IMS, dans lesquelles les canaux voix, vidéo, données et texte ne sont pas intégrés. Dans les réseaux de chaque service, . Il convient de noter que ces applications ne peuvent pas fonctionner simultanément sur plusieurs réseaux de communication, c'est-à-dire Les applications ne peuvent généralement pas communiquer entre elles, ce qui nécessite l'installation d'une application distincte pour chaque réseau de communication.

Le problème de l'intégration des services de communication en temps réel (chat, téléphonie, vidéoconférence), c'est-à-dire l'intégration des canaux voix, vidéo et données et leur accès à l'aide d'une seule application (navigateur) peuvent être résolus en peer-to-peer ou chats vidéo p2p(peer-to-peer, point à point) basé sur Protocole WebRTC. Essentiellement, un navigateur prenant en charge WebRTC devient une interface unique pour tous les appareils utilisateur (PC, smartphones, iPad, téléphones IP, téléphones mobiles, etc.) qui fonctionnent avec les services de communication.

C'est WebRTC qui assure la mise en œuvre dans le navigateur de toutes les technologies permettant des communications en temps réel. L’essence des chats vidéo p2p est que les données multimédias et textuelles sont transférées directement entre les navigateurs des utilisateurs (peering à distance) sans la participation d’un serveur ou de programmes supplémentaires. Ainsi, les navigateurs donnent non seulement accès à la quasi-totalité des ressources d'informations Internet stockées sur des serveurs, mais deviennent également un moyen d'accès à tous les services de communication en temps réel et aux services de messagerie (messagerie vocale, email, SMS, etc.)

Les serveurs (serveurs de contact) des chats vidéo p2p sont destinés uniquement à l'enregistrement des utilisateurs, au stockage des données sur les utilisateurs et à l'établissement d'une connexion (commutation) entre les navigateurs des utilisateurs. Les premiers chats vidéo p2p ont été mis en œuvre à l'aide des technologies flash. Les chats vidéo Flash p2p sont utilisés, par exemple, dans les réseaux sociaux. Les chats vidéo Flash P2P ne permettent pas une transmission de données multimédia de haute qualité. De plus, pour émettre des flux vocaux et vidéo à partir du microphone et de la caméra vidéo dans les chats vidéo flash p2p, vous devez installer un plugin flash dans votre navigateur Web.

Mais la nouvelle génération de services de télécommunications inclut communication sur le Web, qui est utilisé uniquement pour la communication via Internet navigateurs Et contacter les serveurs, soutenant Protocoles WebRTC et spécification HTML5. Tout appareil utilisateur (PC, iPad, smartphones, etc.) équipé d'un tel navigateur peut fournir des appels vocaux et vidéo de haute qualité, ainsi que le transfert de messages texte et de fichiers instantanés.

Ainsi, la nouvelle technologie pour les communications Web (chats p2p, chats vidéo) est le protocole WebRTC. WebRTC avec HTML5, CSS3 et JavaScript vous permettent de créer diverses applications Web. WebRT est conçu pour organiser les communications web (réseaux peer-to-peer) en temps réel grâce à une architecture peer-to-peer. Les chats P2P basés sur WebRTC permettent le transfert de fichiers, ainsi que la communication texte, vocale et vidéo entre les utilisateurs sur Internet en utilisant uniquement des navigateurs Web sans utiliser de modules complémentaires et de plug-ins externes dans le navigateur.

Dans les chats p2p, le serveur est utilisé uniquement pour établir une connexion p2p entre deux navigateurs. Pour créer la partie client d'un chat p2p basé sur le protocole WebRTC, HTML5, CSS3 et JavaScript sont utilisés. L'application client interagit avec les navigateurs via l'API WebRTC.

WebRTC est implémenté par trois API JavaScript :

  • Connexion RTCPeer ;
  • MediaStream(getUserMedia);
  • RTCDataChannel.

Les navigateurs transfèrent les données multimédias à l'aide du protocole SRTP, qui s'exécute sur UDP. Étant donné que NAT crée des problèmes pour les navigateurs (clients) derrière les routeurs NAT qui utilisent des connexions p2p sur Internet, STUN est utilisé pour contourner les traducteurs NAT. STUN est un protocole client-serveur qui s'exécute au-dessus du protocole de transport UDP. Dans les chats p2p, en règle générale, un serveur STUN public est utilisé et les informations reçues de celui-ci sont utilisées pour une connexion UDP entre deux navigateurs s'ils sont derrière NAT.

Exemples de mise en œuvre d'applications WebRTC (chats p2p, chats web vocaux et vidéo) :
1. Le chat vidéo P2P Bistri (chat vidéo en un clic, chat p2p), basé sur WebRTC, peut être ouvert sur Bistri. Bistri fonctionne dans le navigateur sans installer de programmes et plugins supplémentaires. L'essence du travail est la suivante : ouvrez un chat vidéo p2p en utilisant le lien spécifié, après vous être inscrit dans l'interface qui s'ouvre, invitez les partenaires, puis dans la liste des clients pairs, sélectionnez le partenaire qui est en ligne et cliquez sur « appel vidéo » " bouton.

En conséquence, MediaStream (getUserMedia) capturera le microphone + webcam, et le serveur échangera des messages de signalisation avec le partenaire sélectionné. Après avoir échangé des messages de signalisation, l'API PeerConnection crée des canaux pour transmettre des flux vocaux et vidéo. De plus, Bistri transfère des messages texte et des fichiers instantanés. En figue. 1 montre une capture d'écran de l'interface de chat vidéo Bistri p2p.


Riz. 1. Chat vidéo P2P Bistri

2. Twelephone (chat vidéo p2p, chat p2p, SIP Twelephone) - cette application client est construite sur la base de HTML5 et WebRTC, qui vous permet de passer des appels vocaux et vidéo, ainsi que d'envoyer des messages texte instantanés, c'est-à-dire Twelephone comprend le test du chat p2p, le chat vidéo et SIP Twelephone. Il convient de noter que Twelephone prend en charge le protocole SIP et que vous pouvez désormais passer et recevoir des appels vocaux et vidéo à partir de téléphones SIP en utilisant votre compte Twitter comme numéro de téléphone. De plus, les messages texte peuvent être saisis vocalement via le microphone et le programme de reconnaissance vocale saisit le texte dans la ligne « Envoyer un message ».

Twelephone est une téléphonie web qui fonctionne sur la base du navigateur Google Chrome, à partir de la version 25, sans logiciel supplémentaire. Twelephone a été développé par Chris Matthieu. Le backend de Twelephone est construit sur Node.js. Le serveur (serveur de contacts) sert uniquement à établir une connexion p2p entre deux navigateurs ou clients WebRTC. L'application Twelephone ne dispose pas de ses propres outils d'autorisation, mais se concentre sur la connexion à un compte sur Twitter.

En figue. 2 montre une capture d'écran de l'interface de chat vidéo Twelephone p2p.



Riz. 2. Téléphone P2P

3. Chat vidéo p2p de groupe Conversat.io est construit sur les dernières technologies WebRTC et HTML5. Le chat vidéo Conversat est développé sur la base de la bibliothèque SimpleWebRTC et est destiné à la communication entre jusqu'à 6 clients pairs dans une même salle (pour la communication, indiquez le nom de la salle commune pour les clients pairs dans la ligne « Nommer la conversation »). Chat vidéo P2P Conversat fournit des services de communication aux utilisateurs sans s'inscrire sur le serveur de contact. En figue. La figure 3 montre une capture d'écran de l'interface de chat vidéo Conversat p2p.



Riz. 3. Chat vidéo P2P de groupe Conversat.io

Pour participer à des chats vidéo P2P basés sur WebRTC, les utilisateurs doivent disposer d'un navigateur installé prenant en charge le protocole WebRTC et la spécification HTML5. Actuellement, les navigateurs Google Chrome à partir de la version 25 et Mozilla Firefox Nightly prennent en charge le protocole WebRTC et la spécification HTML5. Les applications WebRTC sont supérieures aux applications Flash en termes de qualité de transmission de l'image et du son.

Le but de cet article est d'utiliser un exemple de démonstration de chat vidéo peer-to-peer (chat vidéo p2p) pour vous familiariser avec sa structure et son principe de fonctionnement. À cette fin, nous utiliserons la démo de chat vidéo multi-utilisateurs peer-to-peer webrtc.io-demo. Il peut être téléchargé à partir du lien : https://github.com/webRTC/webrtc.io-demo/tree/master/site.

A noter que GitHub est un site ou service web de développement collaboratif de projets Web. Sur celui-ci, les développeurs peuvent poster les codes de leurs développements, en discuter et communiquer entre eux. De plus, certaines grandes sociétés informatiques publient leurs référentiels officiels sur ce site. Le service est gratuit pour les projets open source. GitHub est un référentiel de bibliothèques de codes sources ouvertes et gratuites.

Nous placerons donc l'exemple de démonstration de chat vidéo peer-to-peer téléchargé depuis GitHub sur le lecteur C d'un ordinateur personnel dans le répertoire créé pour notre application « webrtc_demo ».


Riz. 1

Comme il ressort de la structure (Fig. 1), le chat vidéo peer-to-peer se compose de scripts client script.js et serveur server.js, implémentés dans le langage de programmation JavaScript. Script (bibliothèque) webrtc.io.js (CLIENT) - assure l'organisation des communications en temps réel entre les navigateurs selon un schéma peer-to-peer : "client-client", et webrtc.io.js (CLIENT) et webrtc. io.js (SERVEUR), utilisant le protocole WebSocket, ils assurent une communication duplex entre le navigateur et le serveur Web grâce à une architecture client-serveur.

Le script webrtc.io.js (SERVER) est inclus dans la bibliothèque webrtc.io et se trouve dans le répertoire node_modules\webrtc.io\lib. L'interface de chat vidéo index.html est implémentée en HTML5 et CSS3. Le contenu des fichiers de l'application webrtc_demo peut être visualisé à l'aide de l'un des éditeurs HTML, par exemple "Notepad++".

Nous vérifierons le principe de fonctionnement du chat vidéo dans le système de fichiers du PC. Pour exécuter le serveur (server.js) sur un PC, vous devez installer l'environnement d'exécution node.js. Node.js vous permet d'exécuter du code JavaScript en dehors du navigateur. Vous pouvez télécharger node.js à partir du lien : http://nodejs.org/ (version v0.10.13 du 15/07/13). Sur la page principale du site node.org, cliquez sur le bouton de téléchargement et accédez à http://nodejs.org/download/. Pour les utilisateurs Windows, téléchargez d'abord win.installer (.msi), puis exécutez win.installer (.msi) sur le PC et installez nodejs et "npm package manager" dans le répertoire Program Files.




Riz. 2

Ainsi, node.js se compose d'un environnement de développement et d'exécution de code JavaScript, ainsi que d'un ensemble de modules internes pouvant être installés à l'aide du gestionnaire ou du gestionnaire de packages npm.

Pour installer les modules, vous devez exécuter la commande sur la ligne de commande depuis le répertoire de l'application (par exemple, "webrtc_demo") : npm install nom_module. Lors de l'installation des modules, le gestionnaire npm crée un dossier node_modules dans le répertoire à partir duquel l'installation a été effectuée. Pendant le fonctionnement, nodejs connecte automatiquement les modules du répertoire node_modules.

Ainsi, après avoir installé node.js, ouvrez la ligne de commande et mettez à jour le module express dans le dossier node_modules du répertoire webrtc_demo à l'aide du gestionnaire de packages npm :

C:\webrtc_demo>npm install express

Le module express est un framework web pour node.js ou une plateforme web pour le développement d'applications. Pour avoir un accès global à Express, vous pouvez l'installer comme ceci : npm installer -g express.

Mettez ensuite à jour le module webrtc.io :

C:\webrtc_demo>npm installer webrtc.io

Puis sur la ligne de commande on lance le serveur : server.js :

C:\webrtc_demo>node server.js


Riz. 3

Ça y est, le serveur fonctionne correctement (Figure 3). Désormais, à l'aide d'un navigateur Web, vous pouvez contacter le serveur par adresse IP et charger la page Web index.html, à partir de laquelle le navigateur Web extraira le code du script client - script.js et le code du script webrtc.io.js, et les exécuter. Pour exploiter un chat vidéo peer-to-peer (pour établir une connexion entre deux navigateurs), vous devez contacter le serveur de signaux exécuté sur node.js à partir de deux navigateurs prenant en charge webrtc.

De ce fait, l'interface de la partie client de l'application de communication (chat vidéo) s'ouvrira avec une demande d'autorisation d'accès à la caméra et au microphone (Fig. 4).



Riz. 4

Après avoir cliqué sur le bouton « Autoriser », la caméra et le microphone sont connectés pour la communication multimédia. De plus, vous pouvez communiquer via des données texte via l'interface de chat vidéo (Fig. 5).



Riz. 5

Il faut le noter. Le serveur est un serveur de signalisation et est principalement conçu pour établir des connexions entre les navigateurs des utilisateurs. Node.js est utilisé pour faire fonctionner le script serveur server.js qui fournit la signalisation WebRTC.

WebRTC(Web Real-Time Communications) est une technologie qui permet aux applications et sites Web de capturer et de transmettre sélectivement des flux multimédias audio et/ou vidéo, ainsi que d'échanger des données arbitraires entre navigateurs, sans nécessairement recourir à des intermédiaires. L'ensemble des normes incluses dans la technologie WebRTC vous permet d'échanger des données et de mener des téléconférences peer-to-peer sans que l'utilisateur ait besoin d'installer des plugins ou tout autre logiciel tiers.

WebRTC se compose de plusieurs interfaces de programmation d'applications (API) et protocoles interconnectés qui fonctionnent ensemble. La documentation que vous trouverez ici vous aidera à comprendre les bases de WebRTC, comment configurer et utiliser une connexion pour le streaming de données et de médias, et bien plus encore.

Compatibilité

Étant donné que l'implémentation WebRTC en est encore à ses balbutiements et que chaque navigateur dispose de la fonctionnalité WebRTC, nous vous recommandons fortement d'utiliser la bibliothèque polyfill Adapter.js de Google avant de commencer à travailler sur votre code.

Adapter.js utilise des coins et des polyfills pour combler de manière transparente les différences dans les implémentations WebRTC entre les contextes qui le prennent en charge. Adapter.js gère également les préfixes des fournisseurs et d'autres différences de dénomination des propriétés, ce qui facilite le développement sur WebRTC avec les résultats les plus compatibles. La bibliothèque est également disponible sous forme de package NPM.

Pour explorer davantage la bibliothèque Adapter.js, jetez-y un œil.

Concepts et utilisation du WebRTC

WebRTC est polyvalent et, avec , offre de puissantes fonctionnalités multimédia pour le Web, notamment la prise en charge des conférences audio et vidéo, le partage de fichiers, la capture d'écran, la gestion des identités et l'interopérabilité avec les systèmes téléphoniques existants, y compris la prise en charge de la numérotation par tonalité DTMF. Les connexions entre les nœuds peuvent être créées sans utiliser de pilotes ou de plugins spéciaux, et souvent sans services intermédiaires.

La connexion entre deux nœuds est représentée comme un objet d'interface RTCPeerConnection. Une fois qu'une connexion est établie et ouverte, à l'aide de l'objet RTCPeerConnection, des flux multimédias ( MediaStream s) et/ou des canaux de données ( RTCDataChannel s) peuvent être ajoutés à la connexion.

Les flux multimédias peuvent être constitués de n'importe quel nombre de pistes (pistes) d'informations multimédias. Ces pistes sont représentées par des objets d'interface MediaStreamTrack et peuvent contenir un ou plusieurs types de données multimédias, notamment audio, vidéo, texte (tels que des sous-titres ou des titres de chapitre). La plupart des flux se composent d'au moins une seule piste audio (une piste audio) ou d'une piste vidéo, et peuvent être envoyés et reçus sous forme de flux (médias en temps réel) ou enregistrés dans un fichier.

Vous pouvez également utiliser une connexion entre deux nœuds pour échanger des données arbitraires à l'aide de l'objet d'interface RTCDataChannel, qui peut être utilisé pour transmettre des informations de service, des données boursières, des packages d'état de jeu, des transferts de fichiers ou des canaux de données privés.

plus de détails et de liens vers des guides et tutoriels pertinents sont nécessaires

Interfaces WebRTC

Étant donné que WebRTC fournit des interfaces qui fonctionnent ensemble pour effectuer différentes tâches, nous les avons divisées en catégories. Consultez l’index de la barre latérale pour une navigation rapide.

Configuration et gestion des connexions

Ces interfaces sont utilisées pour configurer, ouvrir et gérer les connexions WebRTC. Ils représentent des connexions multimédias monocouches, des canaux de données et des interfaces utilisés pour échanger des informations sur les capacités de chaque nœud afin de sélectionner la meilleure configuration pour établir une connexion multimédia bidirectionnelle.

RTCPeerConnection Représente une connexion WebRTC entre un ordinateur local et un nœud distant. Utilisé pour gérer un transfert de données réussi entre deux nœuds. RTCSessionDescription Représente les paramètres de session. Chaque RTCSessionDescription contient des descriptions de type , indiquant quelle partie (offre/réponse) du processus de négociation elle décrit, ainsi qu'un descripteur SDP pour la session. RTCIceCandidate Représente le serveur ICE (Internet Connection establishment) candidat pour établir une connexion RTCPeerConnection. RTCIceTransport Représente les informations sur l'installation de connectivité Internet (ICE). RTCPeerConnectionIceEvent Représente les événements qui se produisent sur les candidats ICE, généralement RTCPeerConnection . Un type est transmis à cet objet événement : icecandidate. RTCRtpSender Contrôle le streaming et la transmission de données via un objet de type MediaStreamTrack pour un objet de type RTCPeerConnection . RTCRtpReceiver Contrôle la réception et le décodage des données via un objet de type MediaStreamTrack pour un objet de type RTCPeerConnection . RTCTrackEvent Indique qu'un nouvel objet MediaStreamTrack entrant a été créé et qu'un objet RTCRtpReceiver a été ajouté à l'objet RTCPeerConnection. RTCCertificate Représente un certificat qui utilise l'objet RTCPeerConnection. RTCDataChannel Représente un canal de données bidirectionnel entre deux nœuds de connexion. RTCDataChannelEvent Représente les événements déclenchés lorsqu'un objet de type RTCDataChannel est attaché à un objet de type RTCPeerConnection datachannel . RTCDTMFSender Contrôle le codage et la transmission de la signalisation multifréquence à double tonalité (DTMF) pour un objet de type RTCPeerConnection . RTCDTMFToneChangeEvent Indique un événement de changement de tonalité Dual Tone Multi Frequency (DTMF) entrant. Cet événement ne fait pas de bulle (sauf indication contraire) et n'est pas annulable (sauf indication contraire). RTCStatsReport Signale de manière asynchrone l'état de l'objet transmis de type MediaStreamTrack . RTCIdentityProviderRegistrar Enregistre un fournisseur d'identité (idP). RTCIdentityProvider Permet au navigateur de demander la création ou la vérification d'une déclaration d'identité. RTCIdentityAssertion Représente l'identifiant du nœud distant de la connexion actuelle. Si le nœud n'a pas encore été installé et confirmé, la référence d'interface renverra null . Ne change pas après l'installation. RTCIdentityEvent Représente un objet d'événement de déclaration de fournisseur d'identité (idP). Evénement d'un objet de type RTCPeerConnection. Un type est transmis à cet événement IdentityResult. RTCIdentityErrorEvent Représente un objet d'événement d'erreur associé à un fournisseur d'identité (idP). Evénement d'un objet de type RTCPeerConnection. Deux types d'erreur sont transmis à cet événement : idpassertionerror et idpvalidationerror.

Guides

Présentation de l'architecture WebRTC Sous l'API, que les développeurs utilisent pour créer et utiliser WebRTC, se trouve un ensemble de protocoles réseau et de normes de connexion. Cette revue est une vitrine de ces normes. WebRTC vous permet d'organiser une connexion en mode nœud à nœud pour transférer des données arbitraires, des flux audio, vidéo ou toute combinaison de ceux-ci dans le navigateur. Dans cet article, nous examinerons la durée de vie d'une session WebRTC, en commençant par l'établissement de la connexion et en allant jusqu'à ce qu'elle se termine lorsqu'elle n'est plus nécessaire. Présentation de l'API WebRTC WebRTC se compose de plusieurs interfaces de programmation d'application (API) et protocoles interdépendants qui fonctionnent ensemble pour prendre en charge l'échange de données et de flux multimédias entre deux nœuds ou plus. Cet article fournit un bref aperçu de chacune de ces API et de leur objectif. Notions de base de WebRTC Cet article vous guidera dans la création d'une application RTC multi-navigateurs. À la fin de cet article, vous devriez disposer d’un canal de données et de médias point à point fonctionnel. Protocoles WebRTC Cet article présente les protocoles qui complètent l'API WebRTC. Ce guide décrit comment utiliser une connexion de nœud à nœud et des liens