P2P videorozhovor založený na WebRTC. WebRTC

Európski používatelia internetu sa delia na dve časti: podľa prieskumu Inštitútu pre analýzu verejnej mienky v Allenbachu (Nemecko) sa Skype, chat a systémy okamžitých správ stali neoddeliteľnou súčasťou každodenného života pre 16,5 milióna dospelých a detí, 9 miliónov využívať tieto služby od prípadu k prípadu a 28 miliónov sa ich nedotkne.

Situácia sa môže zmeniť, pretože Firefox je teraz integrovaný komunikačná technológia v reálnom čase (WebRTC), ako aj samotný klient. Spustenie audio a video chatu teraz nie je o nič ťažšie ako otvorenie webovej stránky. Služby ako Facebook a Skype sa na druhej strane spoliehajú na riešenia využívajúce samostatného klienta a vytvorenie účtu.

WebRTC sa nielen ľahko používa. Táto metóda vám dokonca umožňuje nastaviť priame spojenie medzi dvoma prehliadačmi. Zvukové a obrazové údaje teda neprechádzajú cez server, kde môže dôjsť k preťaženiu alebo kde správca nie je obzvlášť citlivý na ochranu súkromia alebo údajov. Pri priamom pripojení WebRTC nevyžaduje registráciu ani účet v žiadnej službe.

Ak chcete začať konverzáciu, stačí kliknúť na odkaz. Komunikácia zostáva súkromná pretože dátový tok je šifrovaný. Komunikácii v reálnom čase cez prehliadač sa Google začal aktívne venovať už v roku 2011, keď zverejnil zdrojový kód svojej implementácie WebRTC.

Krátko na to dostali Chrome a Firefox svoje vlastné motory WebRTC. V súčasnosti sú ich mobilné verzie vybavené ako touto technológiou, tak aj engine WebView 3.6 nainštalovaný s Androidom 5.0, ktorý využívajú aplikácie.

Pre komunikáciu v reálnom čase musia byť vo webovom prehliadači implementované príslušné JavaScriptové rozhrania. S GetUserMedia softvér umožňuje snímanie zo zdrojov zvuku a videa, t. j. z webovej kamery a mikrofónu. RTCPeerConnection je zodpovedný za nadviazanie spojenia, ako aj za samotnú komunikáciu.

Súbežne s integráciou prehliadača presadzuje pracovná skupina World Wide Web Consortium (W3C) proces štandardizácie WebRTC. Dokončený by mal byť v roku 2015.

WebRTC sa uspokojí s málom

Používanie služby WebRTC nevyžaduje veľa zdrojov, pretože server spája iba kamarátov. Nadviazanie spojenia tiež nie je obzvlášť ťažké. Po prvé, prehliadač signalizuje serveru WebRTC, že plánuje iniciovať hovor. Prijíma HTTPS odkaz zo servera - spojenie je šifrované. Používateľ pošle tento odkaz svojmu partnerovi. Prehliadač potom požiada používateľa o povolenie prístupu k webovej kamere a mikrofónu.

Na vytvorenie priameho streamingového spojenia s druhou stranou dostane prehliadač svoju IP adresu a konfiguračné údaje zo služby WebRTC. Kamarátov webový prehliadač robí to isté.

Aby streamovacie pripojenie fungovalo hladko a kvalitne, v prehliadači pracujú tri motory. Dva z nich optimalizujú a komprimujú audio a video dáta, tretí je zodpovedný za ich transport. Údaje odosiela cez protokol SRTP(Secure Real-time Transport Protocol), ktorý umožňuje šifrované streamovanie v reálnom čase.

Ak priame pripojenie zlyhá, WebRTC hľadá inú cestu. Stáva sa to napríklad vtedy, keď nastavenia siete bránia serveru STUN nahlásiť IP adresu. Štandard WebRTC stanovuje, že v tomto prípade sa konverzácia uskutoční, ale s prechodným zahrnutím servera TURN (Traversal Using Relays around NAT). Takže na webovej stránke netscan.co môžete skontrolovať, či je WebRTC implementovaný vo vašom počítači a s vaším prístupom na web.

Ako sa vytvorí spojenie

Najprv musíte zaregistrovať konverzáciu (1). Služba WebRTC poskytuje odkaz, ktorý je potrebné odoslať účastníkovi rozhovoru. Prehliadač pomocou STUNserveru zistí svoju vlastnú IP adresu (2), odošle ju službe a prijme IP partnera na vytvorenie priameho spojenia (3). Ak STUN zlyhá, konverzácia je presmerovaná pomocou TURNservera (4).

Komunikácia pomocou technológie WebRTC v prehliadači sa spúšťa pomocou JavaScript kódu. Potom sú za komunikáciu zodpovedné tri motory: hlasové a obrazové motory zbierajú multimediálne údaje z webovej kamery a mikrofónu a transportný mechanizmus kombinuje informácie a odosiela tok v zašifrovanej forme pomocou protokolu SRTP (Secure Real-time Protocol).

Ktoré prehliadače pracujú s WebRTC

Chrome a Firefox sú vybavené jadrom WebRTC, ktoré využíva služby ako talky.io. Prehliadač Mozilla môže pracovať priamo s vlastným klientom.

Google a Mozilla pokračujú v rozvíjaní myšlienky komunikácie v reálnom čase: Chrome môže hostiť WebRTC konferenciu s viacerými účastníkmi a nový klient Hello vo Firefoxe je vyvinutý s pomocou dcérskej spoločnosti telekomunikačného giganta Telefonica. Apple zatiaľ ostáva bokom, WebRTC v Safari zatiaľ nečakajte. Existuje však množstvo alternatívnych aplikácií a doplnkov pre iOS pre Safari.

Microsoft ide trochu iným smerom. Ako vlastník konkurenčnej služby Skype sa táto spoločnosť pred WebRTC len tak ľahko nechystá kapitulovať. Namiesto toho Microsoft vyvíja technológiu s názvom ORTC (Object Real-Time Communications) pre Internet Explorer.

Rozdiely od WebRTC, ako sú rôzne kodeky a protokoly na nadviazanie kontaktu so serverom, sú nepatrné a postupom času sa pravdepodobne pridajú k štandardu WebRTC, ktorý bude tieto rozdiely zahŕňať. Pozadu tak ostáva už len Apple – ako inak.

Fotka: výrobné spoločnosti; goodluz/Photolia.com

WebRTC(Web Real-Time Communications) je technológia, ktorá umožňuje webovým aplikáciám a webovým stránkam zachytávať a selektívne prenášať audio a/alebo video mediálne toky, ako aj vymieňať ľubovoľné údaje medzi prehliadačmi bez potreby sprostredkovateľov. Súbor štandardov, ktoré technológia WebRTC zahŕňa, umožňuje výmenu údajov a telekonferencie typu peer-to-peer bez toho, aby si používateľ musel inštalovať zásuvné moduly alebo akýkoľvek iný softvér tretích strán.

WebRTC pozostáva z niekoľkých vzájomne prepojených programovacích rozhraní (API) a protokolov, ktoré spolupracujú. Dokumentácia, ktorú tu nájdete, vám pomôže pochopiť základy WebRTC, ako nastaviť a používať dátové a mediálne pripojenie a ďalšie.

Kompatibilita

Pretože implementácie WebRTC sú vo vývoji a každý prehliadač má funkciu WebRTC, dôrazne sa odporúča, aby ste predtým, ako začnete pracovať na svojom kóde, použili knižnicu polyfill Adapter.js od spoločnosti Google.

Adapter.js používa kliny a polyfilly na bezproblémové premostenie rozdielov v implementáciách WebRTC medzi kontextami, ktoré ho podporujú. Adapter.js tiež spracováva predpony dodávateľov a iné rozdiely v názvoch vlastností, čím uľahčuje proces vývoja WebRTC s najkonzistentnejším výsledkom. Knižnica je dostupná aj ako balík NPM.

Ďalšie informácie o knižnici Adapter.js nájdete na stránke .

Koncepty a využitie WebRTC

WebRTC je všestranný a spolu s , poskytuje výkonné multimediálne funkcie pre web, vrátane podpory pre audio a video konferencie, zdieľanie súborov, snímanie obrazovky, správu identity a interoperabilitu so staršími telefónnymi systémami, vrátane podpory DTMF tónovej voľby. Spojenie medzi uzlami je možné vytvoriť bez použitia špeciálnych ovládačov alebo zásuvných modulov a často bez sprostredkovateľských služieb.

Spojenie medzi dvoma uzlami je reprezentované ako objekt rozhrania RTCPeerConnection. Po vytvorení a otvorení pripojenia pomocou objektu RTCPeerConnection je možné k pripojeniu pridať mediálne toky ( MediaStream s) a/alebo dátové kanály ( RTCDataChannel s).

Mediálne toky môžu pozostávať z ľubovoľného počtu stôp (stôp) mediálnych informácií. Tieto stopy, reprezentované objektmi rozhrania MediaStreamTrack, môžu obsahovať jeden alebo viac typov médií vrátane zvuku, videa, textu (ako sú titulky alebo názvy kapitol). Väčšina streamov pozostáva aspoň z jednej zvukovej stopy (jedna zvuková stopa) alebo video stopy a možno ich odosielať a prijímať ako prúdy (médiá v reálnom čase) alebo uložiť do súboru.

Môžete tiež použiť spojenie medzi dvoma uzlami na výmenu ľubovoľných údajov pomocou objektu rozhrania RTCDataChannel, ktorý možno použiť na prenos servisných informácií, údajov o akciách, balíčkov o stave hry, prenos súborov alebo súkromných kanálov prenosu údajov.

potrebné ďalšie podrobnosti a odkazy na príslušné príručky a návody

WebRTC rozhrania

Vzhľadom na to, že WebRTC poskytuje rozhrania, ktoré spolupracujú pri vykonávaní rôznych úloh, rozdelili sme ich do kategórií. Pozrite si abecedný register bočného panela pre rýchlu navigáciu.

Nastavenie a správa pripojenia

Tieto rozhrania sa používajú na nastavenie, otvorenie a správu pripojení WebRTC. Predstavujú mediálne pripojenia typu peer-to-peer, dátové kanály a rozhrania používané na výmenu informácií o schopnostiach každého uzla s cieľom vybrať najlepšiu konfiguráciu pri vytváraní obojsmerného multimediálneho pripojenia.

RTCPeerConnection Predstavuje pripojenie WebRTC medzi lokálnym počítačom a vzdialeným hostiteľom. Používa sa na zvládnutie úspešného prenosu údajov medzi dvoma uzlami. RTCSessionDescription Predstavuje parametre relácie. Každý RTCSessionDescription obsahuje popisy typu označujúce, ktorú časť (ponuka/odpoveď) procesu vyjednávania popisuje, a deskriptor relácie SDP. RTCIceCandidate Predstavuje kandidáta servera na vytvorenie internetového pripojenia (ICE) na vytvorenie pripojenia RTCPeerConnection. RTCIceTransport Predstavuje informácie o zariadení Internet Connectivity Facility (ICE). RTCPeerConnectionIceEvent Predstavuje udalosti, ktoré sa vyskytujú na kandidátoch ICE, zvyčajne RTCPeerConnection . Tomuto objektu udalosti sa odovzdá jeden typ: icecandidate . RTCRtpSender Riadi kódovanie a prenos údajov cez objekt typu MediaStreamTrack pre objekt typu RTCPeerConnection. RTCRtpReceiver Riadi príjem a dekódovanie údajov cez objekt typu MediaStreamTrack pre objekt typu RTCPeerConnection. RTCTrackEvent Označuje, že bol vytvorený nový prichádzajúci objekt typu MediaStreamTrack a do objektu RTCPeerConnection bol pridaný objekt typu RTCRtpReceiver. RTCCertificate Predstavuje certifikát, ktorý používa objekt RTCPeerConnection. RTCDataChannel Predstavuje obojsmerný dátový kanál medzi dvoma spojovacími uzlami. RTCDataChannelEvent Predstavuje udalosti, ktoré sú vyvolané, keď je objekt typu RTCDataChannel pripojený k objektu typu RTCPeerConnection datachannel. RTCDTMFSender Riadi kódovanie a prenos signalizácie Dual Tone Multi-Frequency (DTMF) pre objekt typu RTCPeerConnection. RTCDTMFToneChangeEvent Označuje prichádzajúcu udalosť zmeny tónu DTMF. Táto udalosť neprebubláva (pokiaľ nie je uvedené inak) a nedá sa zrušiť (ak nie je uvedené inak). RTCStatsReport Hlási stav asynchrónne pre odovzdaný objekt typu MediaStreamTrack . RTCIdentityProviderRegistrar Registruje poskytovateľa identity (idP). RTCIdentityProvider Umožňuje prehliadaču požiadať o vytvorenie alebo overenie deklarácie identity. RTCIdentityAssertion Predstavuje ID vzdialeného hostiteľa aktuálneho pripojenia. Ak uzol ešte nebol nainštalovaný a potvrdený, referencia rozhrania vráti hodnotu null . Po inštalácii sa nemení. RTCIdentityEvent Predstavuje deklaráciu poskytovateľa identity (idP) objektu udalosti identifikátora. Udalosť objektu typu RTCPeerConnection . Do tejto udalosti identityresult sa odovzdá jeden typ. RTCIdentityErrorEvent Predstavuje objekt chybovej udalosti spojený s poskytovateľom identity (idP). Udalosť objektu typu RTCPeerConnection . Do tejto udalosti sa prenášajú dva typy chýb: idpassertionerror a idpvalidationerror .

Sprievodcovia

Prehľad architektúry WebRTC Pod API, ktoré vývojári používajú na vytváranie a používanie WebRTC, je sada sieťových protokolov a štandardov pripojenia. Táto recenzia je ukážkou týchto noriem. WebRTC vám umožňuje nastaviť spojenie medzi uzlami na prenos ľubovoľných údajov, zvuku, videa alebo akejkoľvek ich kombinácie v prehliadači. V tomto článku sa pozrieme na životnosť relácie WebRTC, od vytvorenia pripojenia až po jeho ukončenie, keď už nie je potrebné. Prehľad WebRTC Rozhranie WebRTC API pozostáva z niekoľkých vzájomne prepojených rozhraní API a protokolov, ktoré spolupracujú na poskytovaní podpory pre výmenu údajov a mediálnych tokov medzi dvoma alebo viacerými uzlami. Tento článok poskytuje stručný prehľad každého z týchto rozhraní API a ich účelu. Základy WebRTC Tento článok vás prevedie vytvorením aplikácie RTC pre rôzne prehliadače. Na konci tohto článku by ste mali mať funkčný dátový a mediálny kanál spustený z bodu do bodu. Protokoly WebRTC Tento článok predstavuje protokoly, pre ktoré bolo vytvorené rozhranie WebRTC API. Táto príručka popisuje, ako môžete použiť spojenie medzi uzlom a prepojené

Dnes je WebRTC „horúcou“ technológiou na streamovanie zvuku a videa v prehliadačoch. Konzervatívne technológie, ako HTTP Streaming a Flash, sú vhodnejšie na distribúciu nahratého obsahu (video na požiadanie) a sú výrazne horšie ako WebRTC z hľadiska vysielania v reálnom čase a online, t.j. kde sa vyžaduje minimálna latencia videa, čo umožňuje divákom vidieť, čo sa deje „naživo“.

Možnosť kvalitnej komunikácie v reálnom čase pochádza zo samotnej architektúry WebRTC, kde sa na prenos video streamov používa protokol UDP, ktorý je štandardným základom pre prenos videa s minimálnym oneskorením a je široko používaný v systémoch komunikácie v reálnom čase.

Komunikačná latencia je dôležitá v systémoch živého vysielania, webinároch a iných aplikáciách, kde sa vyžaduje interaktívna komunikácia so zdrojom videa, koncovými používateľmi a riešením.

Ďalším dobrým dôvodom na vyskúšanie WebRTC je určite trend. Túto technológiu dnes podporuje každý prehliadač Chrome pre Android, čo zaručuje, že milióny zariadení sú pripravené sledovať vysielanie bez inštalácie akéhokoľvek dodatočného softvéru a konfigurácií.

Aby sme otestovali technológiu WebRTC v praxi a spustili na nej jednoduché online vysielanie, použili sme serverový softvér Flashphoner WebRTC Media & Broadcasting Server. Funkcie deklarujú schopnosť vysielať WebRTC streamy v režime one-to-many, ako aj podporu IP kamier a video monitorovacích systémov cez protokol RTSP; v tejto recenzii sa zameriame na web-webové vysielania a ich funkcie.

Inštalácia WebRTC Media & Broadcasting Server

Keďže neexistovala žiadna verzia servera pre systém Windows a nechcel som inštalovať virtuálny stroj ako VMWare + Linux, nemohol som testovať online vysielanie na svojom domácom počítači so systémom Windows. Aby sme ušetrili čas, rozhodli sme sa použiť príklad cloudového hostingu, ako je tento:

Bol to Centos x86_64 verzie 6.5 bez akéhokoľvek predinštalovaného softvéru v amsterdamskom dátovom centre. Takže všetko, čo máme k dispozícii, je server a ssh prístup k nemu. Pre tých, ktorí sú oboznámení s príkazmi konzoly Linux, inštalácia servera WebRTC sľubuje, že bude jednoduchá a bezbolestná. Čo sme teda urobili:

1. Stiahnite si archív:

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

2. Rozbaliť:

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

3. Inštalácia:

$cd FlashphonerWebCallServer

Počas inštalácie zadajte IP adresu servera: XXX.XXX.XXX.XXX

4. Aktivovať licenciu:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. Spustite server WCS:

$service webcallserver štart

6. Skontrolujte denník:

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

7. Skontrolujte, či sú zavedené dva procesy:

$ps aux | grep Flashphoner

Proces inštalácie je dokončený.

Testovanie živých prenosov WebRTC

Testovanie vysielania sa ukázalo ako jednoduchá záležitosť. Okrem servera existuje webový klient, ktorý pozostáva z tucta súborov Javascript, HTML a CSS a bol nami nasadený do priečinka /var/www/html počas fázy inštalácie. Jediné, čo bolo treba urobiť, bolo zadať IP adresu servera do konfigurácie flashphoner.xml, aby webový klient mohol nadviazať spojenie so serverom cez HTML5 Websockets. Poďme si popísať proces testovania.

1. Otvorte stránku index.html testovacieho klienta v prehliadači Chrome:

2. Ak chcete spustiť vysielanie, musíte kliknúť na tlačidlo „Štart“ v strede obrazovky.
Predtým, ako to urobíte, sa musíte uistiť, že je webová kamera pripojená a pripravená na použitie. Na webovú kameru nie sú kladené žiadne špeciálne požiadavky, napríklad sme použili štandardnú vstavanú notebookovú kameru s rozlíšením 1280 × 800.

Prehliadač Chrome určite požiada o prístup ku kamere a mikrofónu, aby používateľ pochopil, že jeho video bude odoslané na internetový server, a umožní mu to.

3. Rozhranie predstavuje úspešné vysielanie toku videa z kamery na server WebRTC. V pravom hornom rohu indikátor indikuje, že stream smeruje na server, v dolnom rohu je tlačidlo „Stop“ na zastavenie odosielania videa.

Pozrite si odkaz nižšie. Obsahuje jedinečný identifikátor pre tento stream, takže k zobrazeniu sa môže pripojiť ktokoľvek. Stačí otvoriť tento odkaz v prehliadači. Ak ho chcete skopírovať do schránky, musíte kliknúť na tlačidlo "Kopírovať".

V reálnych aplikáciách, ako sú webináre, prednášky, online video vysielanie či interaktívna televízia, budú musieť vývojári implementovať distribúciu tohto identifikátora určitým skupinám divákov, aby sa mohli pripojiť k požadovaným streamom, no taká je logika aplikácie. WebRTC Media & Broadcasting Server neovplyvňuje, ale zaoberá sa iba distribúciou videa.

5. Spojenie sa vytvorí a divák vidí stream na obrazovke. Teraz môže poslať odkaz niekomu inému, zastaviť prehrávanie streamu alebo zapnúť režim celej obrazovky pomocou ovládacích prvkov v pravom dolnom rohu.

Výsledky testovania servera WebRTC pre online vysielania

Počas testov sa latencia zdala byť dokonalá. Ping do dátového centra bol asi 100 milisekúnd a oneskorenie nebolo okom viditeľné. Odtiaľ môžeme predpokladať, že skutočné oneskorenie je rovnakých 100 plus alebo mínus niekoľko desiatok milisekúnd pre čas ukladania do vyrovnávacej pamäte. V porovnaní s videom Flash si Flash v týchto testoch nevedie tak dobre ako WebRTC. Ak teda pohnete rukou na podobnej sieti, pohyb na obrazovke bude vidieť až po jednej/dvoch sekundách.

Pokiaľ ide o kvalitu, poznamenávame, že niekedy môžete rozlíšiť kocky na pohyboch. To je v súlade s charakterom kodeku VP8 a jeho hlavným cieľom je poskytnúť video komunikáciu v reálnom čase s prijateľnou kvalitou a bez komunikačných oneskorení.

Server sa inštaluje a konfiguruje pomerne jednoducho, jeho prevádzka nevyžaduje žiadne vážne zručnosti, okrem znalosti Linuxu na úrovni pokročilého používateľa, ktorý vie spúšťať príkazy z konzoly cez ssh a používať textový editor. Výsledkom bolo, že sa nám podarilo nastaviť online vysielanie typu one-to-many medzi prehliadačmi. Problémy nespôsobilo ani pripojenie ďalších divákov k streamu.

Kvalita vysielania sa ukázala byť celkom prijateľná pre webináre a online prenosy. Jediné, čo vyvolalo nejaké otázky, bolo rozlíšenie videa. Kamera podporuje rozlíšenie 1280 x 800, ale rozlíšenie na testovacom obrázku je veľmi podobné 640 x 480. Zdá sa, že tento problém je potrebné objasniť s vývojármi.

Video o testovaní vysielania z webovej kamery
cez WebRTC server

Účelom tohto článku je zoznámiť sa s jeho štruktúrou a princípom fungovania na ukážkovej ukážke peer-to-peer video chatu (p2p video chat). Na tento účel použijeme viacužívateľské peer-to-peer video chat demo webrtc.io-demo. Dá sa stiahnuť z odkazu: https://github.com/webRTC/webrtc.io-demo/tree/master/site.

Je potrebné poznamenať, že GitHub je stránka alebo webová služba na spoločný vývoj webových projektov. Na ňom môžu vývojári zverejňovať kódy svojho vývoja, diskutovať o nich a komunikovať medzi sebou. Okrem toho niektoré veľké IT spoločnosti na tejto stránke hosťujú svoje oficiálne úložiská. Služba je bezplatná pre projekty s otvoreným zdrojom. GitHub je úložisko open source knižníc.

Takže, stiahnutú z GitHubu ukážkovú ukážku videorozhovoru typu peer-to-peer, umiestnime ju na jednotku C osobného počítača do adresára vytvoreného pre našu aplikáciu „webrtc_demo“.


Ryža. jeden

Ako vyplýva zo štruktúry (obr. 1), peer-to-peer videochat pozostáva z klientskych skriptov script.js a serverových server.js implementovaných v programovacom jazyku JavaScript. Skript (knižnica) webrtc.io.js (CLIENT) – poskytuje organizáciu komunikácie v reálnom čase medzi prehliadačmi podľa schémy peer-to-peer: „klient-klient“ a webrtc.io.js (KLIENT) a webrtc .io.js (SERVER) pomocou protokolu WebSocket zabezpečujú duplexnú komunikáciu medzi prehliadačom a webovým serverom pomocou architektúry „klient-server“.

Skript webrtc.io.js (SERVER) je zahrnutý v knižnici webrtc.io a nachádza sa v adresári node_modules\webrtc.io\lib. Rozhranie videorozhovoru index.html je implementované v HTML5 a CSS3. Obsah súborov aplikácie webrtc_demo je možné zobraziť pomocou jedného z html editorov, napríklad "Notepad++".

Skontrolujeme princíp videorozhovoru v súborovom systéme PC. Ak chcete spustiť server (server.js) na počítači, musíte si nainštalovať runtime node.js. Node.js vám umožňuje spúšťať kód JavaScript mimo prehliadača. Node.js si môžete stiahnuť z odkazu: http://nodejs.org/ (verzia v0.10.13 z 15.7.2013). Na hlavnej stránke stránky node.org kliknite na tlačidlo sťahovania a prejdite na http://nodejs.org/download/. Pre používateľov systému Windows si najprv stiahnite win.installer (.msi), potom spustite win.installer (.msi) na PC a nainštalujte nodejs a "npm package manager" do adresára Program Files.




Ryža. 2

Node.js teda pozostáva z vývojového a spúšťacieho prostredia JavaScriptu, ako aj zo sady interných modulov, ktoré je možné nainštalovať pomocou správcu balíkov npm alebo správcu balíkov.

Ak chcete nainštalovať moduly, spustite nasledujúci príkaz v príkazovom riadku z adresára aplikácie (napríklad "webrtc_demo"): npm install module_name. Počas inštalácie modulov správca npm vytvorí zložku node_modules v adresári, z ktorého bola inštalácia vykonaná. Pri spustení nodejs automaticky zahŕňa moduly z adresára node_modules.

Takže po inštalácii node.js otvorte príkazový riadok a aktualizujte expresný modul v priečinku node_modules adresára webrtc_demo pomocou správcu balíkov npm:

C:\webrtc_demo>npm install express

Expresný modul je webový rámec pre node.js alebo platformu pre vývoj webových aplikácií. Ak chcete mať globálny prístup k službe Express, môžete si ju nainštalovať takto: npm install -g express.

Potom aktualizujeme modul webrtc.io:

C:\webrtc_demo>npm nainštalujte webrtc.io

Potom na príkazovom riadku spustíme server: server.js:

C:\webrtc_demo>nodeserver.js


Ryža. 3

Všetko, server funguje úspešne (obrázok 3). Teraz môžete pomocou webového prehliadača kontaktovať server pomocou ip-adresy a stiahnuť si webovú stránku index.html, z ktorej webový prehliadač extrahuje kód klientského skriptu - script.js a kód skriptu webrtc.io.js, a vykonať ich. Aby videorozhovor peer-to-peer fungoval (na nadviazanie spojenia medzi dvoma prehliadačmi), je potrebné z dvoch prehliadačov, ktoré podporujú webrtc, kontaktovať signálny server spustený na node.js pomocou IP adresy.

V dôsledku toho sa otvorí rozhranie klientskej časti komunikačnej aplikácie (video chat) so žiadosťou o povolenie prístupu ku kamere a mikrofónu (obr. 4).



Ryža. štyri

Po kliknutí na tlačidlo „Povoliť“ sa kamera a mikrofón pripojí na multimediálnu komunikáciu. Navyše cez rozhranie videochatu môžete komunikovať s textovými údajmi (obr. 5).



Ryža. 5

Treba poznamenať, že . Server signalizuje a je určený hlavne na vytvorenie spojenia medzi prehliadačmi používateľov. Skript server.js, ktorý poskytuje signalizáciu WebRTC, používa na spustenie súbor Node.js.