P2P video chat baziran na WebRTC-u. WebRTC

Evropski korisnici interneta podijeljeni su u dva dijela: prema istraživanju Instituta za analizu javnog mnijenja u Allenbachu (Nemačka), Skype, chat i sistemi za instant poruke postali su sastavni dio svakodnevnog života za 16,5 miliona odraslih i djece, 9 miliona koriste ove usluge od slučaja do slučaja, a 28 miliona ih ne dira.

Situacija se može promijeniti jer je sada Firefox integriran komunikacijska tehnologija u realnom vremenu (WebRTC), kao i samog klijenta. Pokretanje audio i video chata sada nije ništa teže od otvaranja web stranice. Servisi kao što su Facebook i Skype se, s druge strane, oslanjaju na rješenja koja koriste poseban klijent i kreiraju nalog.

WebRTC nije samo jednostavan za korištenje. Ova metoda vam čak omogućava postavljanje direktnu vezu između dva pretraživača. Na taj način audio i video podaci ne prolaze kroz server na kojem može doći do zagušenja ili gdje administrator nije posebno osjetljiv na privatnost ili zaštitu podataka. Uz direktnu vezu, WebRTC ne zahtijeva registraciju ili nalog na bilo kojoj usluzi.

Da biste započeli razgovor, potrebno je samo da pratite link. Komunikacija ostaje privatna jer je tok podataka šifriran. Komunikaciju u realnom vremenu putem pretraživača, Google je počeo aktivno da se bavi još 2011. godine, kada je objavio izvorni kod svoje WebRTC implementacije.

Ubrzo nakon toga, Chrome i Firefox dobili su vlastite WebRTC motore. Trenutno su njihove mobilne verzije opremljene i ovom tehnologijom i WebView 3.6 motorom instaliranim sa Androidom 5.0, koji koriste aplikacije.

Za komunikaciju u realnom vremenu, odgovarajući JavaScript interfejsi moraju biti implementirani u web preglednik. Uz GetUserMedia, softver omogućava snimanje iz audio i video izvora, tj. web kamere i mikrofona. RTCPeerConnection je odgovoran za uspostavljanje veze, kao i za samu komunikaciju.

Paralelno sa integracijom pretraživača, radna grupa World Wide Web Consortium (W3C) gura proces standardizacije WebRTC-a. Trebalo bi da bude završen 2015. godine.

WebRTC se zadovoljava s malo

Korišćenje WebRTC usluge ne zahteva mnogo resursa, pošto server povezuje samo prijatelje. Uspostavljanje veze također nije posebno teško. Prvo, pretraživač signalizira WebRTC serveru da planira pokrenuti poziv. Prima HTTPS vezu sa servera - veza je šifrovana. Korisnik šalje ovu vezu svom sagovorniku. Pregledač tada traži od korisnika dozvolu za pristup web kameri i mikrofonu.

Da bi uspostavio direktnu striming vezu sa drugom stranom, pretraživač prima njegovu IP adresu i konfiguracione podatke od WebRTC usluge. Prijateljev web pretraživač radi isto.

Kako bi streaming veza funkcionirala nesmetano i kvalitetno, u pretraživaču rade tri motora. Dvije od njih optimiziraju i komprimiraju audio i video podatke, treći je odgovoran za njihov transport. Šalje podatke putem SRTP protokol(Secure Real-time Transport Protocol), koji omogućava šifrovani streaming u realnom vremenu.

Ako direktna veza ne uspije, WebRTC traži drugu putanju. Na primjer, ovo se dešava kada mrežne postavke sprječavaju STUN server da prijavi IP adresu. WebRTC standard predviđa da će se u ovom slučaju razgovor odvijati, ali uz posredno uključivanje TURN servera (Traversal Using Relays around NAT). Dakle, na web stranici netscan.co možete provjeriti da li je WebRTC implementiran na vašem računalu i s vašim pristupom webu.

Kako se uspostavlja veza

Prvo morate registrovati razgovor (1). WebRTC servis pruža vezu koju je potrebno poslati sagovorniku. Pretraživač, koristeći STUNserver, saznaje svoju IP adresu (2), šalje je servisu i prima IP partnera za uspostavljanje direktne veze (3). Ako STUN ne uspije, razgovor se preusmjerava pomoću TURN servera (4).

Komunikacija pomoću WebRTC tehnologije u pretraživaču se pokreće pomoću JavaScript koda. Nakon toga, tri motora su odgovorna za komunikaciju: glasovni i video motori prikupljaju multimedijalne podatke sa web kamere i mikrofona, a transportni motor kombinuje informacije i šalje stream u šifriranom obliku koristeći Secure Real-time Protocol (SRTP).

Koji pretraživači rade sa WebRTC-om

Chrome i Firefox opremljeni su WebRTC motorom koji koristi usluge kao što je talky.io. Mozilla pretraživač može raditi direktno sa svojim klijentom.

Google i Mozilla nastavljaju da razvijaju ideju komunikacije u realnom vremenu: Chrome može ugostiti WebRTC konferenciju sa više učesnika, a novi Hello klijent u Firefoxu razvijen je uz pomoć podružnice telekomunikacionog giganta Telefonica. Apple za sada ostaje po strani, WebRTC još ne treba očekivati ​​u Safariju. Međutim, postoji mnogo alternativnih iOS aplikacija i dodataka za Safari.

Microsoft ide malo drugačijim putem. Kao vlasnik konkurentnog Skype servisa, ova kompanija neće tako lako kapitulirati pred WebRTC-om. Umjesto toga, Microsoft razvija tehnologiju pod nazivom ORTC (Object Real-Time Communications) za Internet Explorer.

Razlike u odnosu na WebRTC, kao što su različiti kodeci i protokoli za uspostavljanje kontakta sa serverom, su male i vremenom će, najvjerovatnije, postati dodatak WebRTC standardu, koji će uključivati ​​i ove razlike. Dakle, samo Apple ostaje iza - kao i obično.

Fotografija: proizvodne kompanije; goodluz/Photolia.com

WebRTC(Web Real-Time Communications) je tehnologija koja omogućava web aplikacijama i web stranicama da snimaju i selektivno prenose audio i/ili video medijske tokove, kao i razmjenu proizvoljnih podataka između pretraživača, bez potrebe za posrednicima. Skup standarda koje WebRTC tehnologija uključuje omogućava razmjenu podataka i peer-to-peer telekonferencije bez potrebe da korisnik instalira dodatke ili bilo koji drugi softver treće strane.

WebRTC se sastoji od nekoliko međusobno povezanih programskih interfejsa (API) i protokola koji rade zajedno. Dokumentacija koju ćete ovdje pronaći pomoći će vam da shvatite osnove WebRTC-a, kako postaviti i koristiti vezu za podatke i medije i još mnogo toga.

Kompatibilnost

Budući da su implementacije WebRTC-a u izradi i svaki pretraživač ima WebRTC funkcionalnost, toplo se preporučuje da koristite biblioteku Adapter.js polyfill od Google-a prije nego počnete raditi na svom kodu.

Adapter.js koristi klinove i polifile kako bi neprimetno premostio razlike u implementaciji WebRTC-a među kontekstima koji ga podržavaju. Adapter.js takođe rukuje prefiksima dobavljača i drugim razlikama u imenovanju svojstava, olakšavajući proces razvoja WebRTC-a sa najkonzistentnijim rezultatom. Biblioteka je takođe dostupna kao NPM paket.

Za dalje istraživanje biblioteke Adapter.js pogledajte .

Koncepti i upotreba WebRTC-a

WebRTC je svestran i, zajedno sa , pruža moćne multimedijalne mogućnosti za Web, uključujući podršku za audio i video konferencije, deljenje datoteka, snimanje ekrana, upravljanje identitetom i interoperabilnost sa starim telefonskim sistemima, uključujući podršku za DTMF tonsko biranje. Veze između čvorova mogu se kreirati bez upotrebe posebnih drajvera ili dodataka, a često i bez posredničkih usluga.

Veza između dva čvora je predstavljena kao objekat interfejsa RTCPeerConnection. Jednom kada se veza uspostavi i otvori pomoću RTCPeerConnection objekta, tokovi medija ( MediaStream s) i/ili kanali podataka ( RTCDataChannel s) mogu se dodati u vezu.

Medijski tokovi se mogu sastojati od bilo kojeg broja staza (traka) medijskih informacija. Ove staze, predstavljene objektima MediaStreamTrack interfejsa, mogu sadržati jedan ili više tipova medija, uključujući audio, video, tekst (kao što su titlovi ili naslovi poglavlja). Većina tokova sastoji se od najmanje jedne audio trake (jedne audio trake) ili video zapisa i može se slati i primati kao streamovi (mediji u realnom vremenu) ili sačuvati u datoteci.

Također, možete koristiti vezu između dva čvora za razmjenu proizvoljnih podataka pomoću objekta interfejsa RTCDataChannel, koji se može koristiti za prijenos servisnih informacija, podataka o dionicama, paketa statusa igre, prijenos datoteka ili privatnih kanala za prijenos podataka.

potrebni su više detalja i linkovi do relevantnih vodiča i tutorijala

WebRTC sučelja

Zbog činjenice da WebRTC pruža interfejse koji rade zajedno za obavljanje različitih zadataka, podelili smo ih u kategorije. Pogledajte abecedni indeks bočne trake za brzu navigaciju.

Postavljanje i upravljanje vezom

Ova sučelja se koriste za postavljanje, otvaranje i upravljanje WebRTC vezama. Oni predstavljaju peer-to-peer medijske veze, kanale podataka i interfejse koji se koriste za razmenu informacija o mogućnostima svakog čvora kako bi se izabrala najbolja konfiguracija prilikom uspostavljanja dvosmerne multimedijalne veze.

RTCPeerConnection Predstavlja WebRTC vezu između lokalnog računara i udaljenog hosta. Koristi se za rukovanje uspješnim prijenosom podataka između dva čvora. RTCSessionDescription Predstavlja parametre sesije. Svaki RTCSessionDescription sadrži opise tipa koji pokazuju koji dio (ponuda/odgovor) procesa pregovaranja opisuje, i deskriptor SDP sesije. RTCIceCandidate Predstavlja kandidata servera za uspostavljanje internet veze (ICE) za uspostavljanje RTCPeerConnection veze. RTCIceTransport Predstavlja informacije o Internet Connectivity Facility (ICE). RTCPeerConnectionIceEvent Predstavlja događaje koji se događaju na ICE kandidatima, obično RTCPeerConnection . Jedan tip se prosljeđuje ovom objektu događaja: icecandidate. RTCRtpSender Kontrolira kodiranje i prijenos podataka preko objekta tipa MediaStreamTrack za objekt tipa RTCPeerConnection. RTCRtpReceiver Kontrolira prijem i dekodiranje podataka putem objekta tipa MediaStreamTrack za objekt tipa RTCPeerConnection. RTCTrackEvent Označava da je kreiran novi dolazni objekt tipa MediaStreamTrack i da je objekt tipa RTCRtpReceiver dodan objektu RTCPeerConnection. RTCCertificate Predstavlja certifikat koji koristi objekt RTCPeerConnection. RTCDataChannel Predstavlja dvosmjerni kanal podataka između dva čvora veze. RTCDataChannelEvent Predstavlja događaje koji se javljaju kada je objekt tipa RTCDataChannel pripojen objektu tipa RTCPeerConnection datachannel. RTCDTMFSender Kontroliše kodiranje i prijenos dvotonske višefrekventne (DTMF) signalizacije za objekt tipa RTCPeerConnection. RTCDTMFToneChangeEvent Označava dolazni događaj promjene DTMF tona. Ovaj događaj se ne pojavljuje u mjehurićima (osim ako nije drugačije navedeno) i nije moguće otkazati (osim ako nije drugačije navedeno). RTCStatsReport Asinhrono izvještava o statusu za proslijeđeni objekt tipa MediaStreamTrack. RTCIdentityProviderRegistrar Registrira dobavljača identiteta (idP). RTCIdentityProvider Omogućuje pretraživaču da zatraži kreiranje ili validaciju deklaracije identiteta. RTCIdentityAssertion Predstavlja ID udaljenog hosta trenutne veze. Ako čvor još nije instaliran i potvrđen, referenca interfejsa će vratiti null. Ne mijenja se nakon instalacije. RTCIdentityEvent Predstavlja deklaraciju dobavljača identiteta (idP) objekta događaja identifikatora. Događaj objekta tipa RTCPeerConnection . Jedan tip se prosljeđuje ovom događaju identityresult. RTCIdentityErrorEvent Predstavlja objekt događaja greške pridruženog dobavljaču identiteta (idP). Događaj objekta tipa RTCPeerConnection . Dvije vrste greške se prosljeđuju ovom događaju: idpassertionerror i idpvalidationerror.

Vodiči

Pregled WebRTC arhitekture Ispod API-ja koji programeri koriste za kreiranje i korištenje WebRTC nalazi se skup mrežnih protokola i standarda povezivanja. Ovaj pregled je prikaz ovih standarda. WebRTC vam omogućava da postavite vezu čvor-čvor za prijenos proizvoljnih podataka, audio, video tokova ili bilo koje njihove kombinacije u pretraživaču. U ovom članku ćemo pogledati život WebRTC sesije, od uspostavljanja veze do njenog prekida kada više nije potrebna. Pregled WebRTC-a WebRTC API se sastoji od nekoliko međusobno povezanih programskih interfejsa (API) i protokola koji rade zajedno kako bi pružili podršku za razmjenu podataka i medijskih tokova između dva ili više čvorova. Ovaj članak pruža kratak pregled svakog od ovih API-ja i njihovu svrhu. Osnove WebRTC-a Ovaj članak će vas provesti kroz izgradnju RTC aplikacije za više pretraživača. Do kraja ovog članka, trebali biste imati radni kanal podataka i medija koji radi od tačke do tačke. WebRTC protokoli Ovaj članak predstavlja protokole za koje je kreiran WebRTC API. Ovaj vodič opisuje kako možete koristiti vezu čvor-čvor i povezanu vezu

Danas je WebRTC "vruća" tehnologija za streaming audio i video zapisa u pretraživačima. Konzervativne tehnologije, kao što su HTTP Streaming i Flash, pogodnije su za distribuciju snimljenog sadržaja (video na zahtjev) i značajno su inferiorne u odnosu na WebRTC u smislu emitiranja u realnom vremenu i online, tj. gdje je potrebno minimalno kašnjenje videa, omogućavajući gledaocima da vide šta se dešava "uživo".

Mogućnost kvalitetne komunikacije u realnom vremenu dolazi iz same WebRTC arhitekture, gdje se za transport video tokova koristi UDP protokol, koji je standardna osnova za prijenos videa sa minimalnim kašnjenjima i koji se široko koristi u komunikacijskim sistemima u realnom vremenu.

Latencija komunikacije je važna u sistemima za striming uživo, webinarima i drugim aplikacijama gdje je potrebna interaktivna komunikacija s video izvorom, krajnjim korisnicima i rješenjem.

Još jedan dobar razlog da isprobate WebRTC je definitivno trend. Danas svaki Android Chrome pretraživač podržava ovu tehnologiju, što garantuje da su milioni uređaja spremni za gledanje emitovanja bez instaliranja dodatnog softvera i konfiguracija.

Kako bismo testirali WebRTC tehnologiju u akciji i pokrenuli jednostavno onlajn emitovanje na njoj, koristili smo Flashphoner WebRTC Media & Broadcasting Server softver server. Karakteristike deklarišu mogućnost emitovanja WebRTC streamova u režimu jedan prema više, kao i podršku za IP kamere i sisteme video nadzora preko RTSP protokola; u ovom pregledu ćemo se fokusirati na web-web emitiranje i njihove karakteristike.

Instalacija WebRTC Media & Broadcasting servera

Pošto nije postojala verzija servera za Windows sistem, a nisam želeo da instaliram virtuelnu mašinu kao što je VMWare + Linux, nisam mogao da testiram onlajn emitovanje na svom kućnom Windows računaru. Kako bismo uštedjeli vrijeme, odlučili smo da uzmemo primjer hostinga u oblaku ovako:

Bio je to Centos x86_64 verzija 6.5 bez prethodno instaliranog softvera u amsterdamskom data centru. Dakle, sve što imamo na raspolaganju je server i ssh pristup njemu. Za one koji su upoznati sa komandama Linux konzole, instaliranje WebRTC servera obećava da će biti lako i bezbolno. Dakle, šta smo uradili:

1. Preuzmite arhivu:

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

2. raspakiraj:

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

3. Instaliraj:

$cd FlashphonerWebCallServer

Tokom instalacije unesite IP adresu servera: XXX.XXX.XXX.XXX

4. Aktivirajte licencu:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. Pokrenite WCS server:

$service webcallserver start

6. Provjerite dnevnik:

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

7. Provjerite postoje li dva procesa:

$ps aux | grep Flashphoner

Proces instalacije je završen.

Testiranje WebRTC prijenosa uživo

Ispostavilo se da je testiranje emitovanja jednostavna stvar. Pored servera, postoji i web klijent koji se sastoji od desetak Javascript, HTML i CSS fajlova i koji smo mi postavili u /var/www/html folder tokom faze instalacije. Jedino što je trebalo uraditi je uneti IP adresu servera u flashphoner.xml konfiguraciju kako bi web klijent mogao uspostaviti vezu sa serverom preko HTML5 Websockets. Hajde da opišemo proces testiranja.

1. Otvorite stranicu index.html testnog klijenta u pregledniku Chrome:

2. Da biste započeli emitovanje, potrebno je da kliknete na dugme "Start" na sredini ekrana.
Prije nego što to učinite, morate biti sigurni da je web kamera povezana i spremna za rad. Za web kameru nema posebnih zahtjeva, na primjer, koristili smo standardnu ​​ugrađenu kameru za laptop rezolucije 1280 × 800.

Chrome pretraživač će svakako tražiti pristup kameri i mikrofonu kako bi korisnik shvatio da će njegov video biti poslan na internet server i omogućio mu to.

3. Interfejs predstavlja uspješno emitovanje video toka sa kamere na WebRTC server. U gornjem desnom uglu indikator pokazuje da stream ide na server, u donjem uglu se nalazi dugme "Stop" za zaustavljanje slanja videa.

Bacite pogled na link ispod. Sadrži jedinstveni identifikator za ovaj prijenos, tako da se svako može pridružiti pregledu. Samo otvorite ovu vezu u pretraživaču. Da biste ga kopirali u međuspremnik, potrebno je da kliknete na dugme "Kopiraj".

U stvarnim aplikacijama kao što su webinari, predavanja, online video prijenosi ili interaktivna TV, programeri će morati implementirati distribuciju ovog identifikatora određenim grupama gledatelja kako bi se mogli povezati na željene streamove, ali to je logika aplikacije. WebRTC Media & Broadcasting Server ne utiče, već se samo bavi distribucijom videa.

5. Veza je uspostavljena i gledalac vidi stream na ekranu. Sada može poslati link nekom drugom, zaustaviti stream reprodukciju ili omogućiti način rada preko cijelog ekrana koristeći kontrole u donjem desnom uglu.

Rezultati testiranja WebRTC servera za onlajn emitovanje

Tokom testova, latencija je izgledala savršeno. Ping do data centra bio je oko 100 milisekundi i kašnjenje nije bilo vidljivo oku. Odavde možemo pretpostaviti da je stvarno kašnjenje istih 100 plus ili minus nekoliko desetina milisekundi za vrijeme baferiranja. U poređenju sa Flash video zapisom, Flash ne radi tako dobro kao WebRTC u ovim testovima. Dakle, ako pomjerite ruku na sličnoj mreži, tada se kretanje na ekranu može vidjeti tek nakon jedne/dvije sekunde.

Što se tiče kvaliteta, napominjemo da se ponekad mogu razlikovati kocke na pokretima. Ovo je u skladu sa prirodom VP8 kodeka i njegov glavni cilj je da obezbedi video komunikaciju u realnom vremenu prihvatljivog kvaliteta i bez kašnjenja u komunikaciji.

Server je prilično jednostavan za instalaciju i konfiguraciju, za njegovo pokretanje nisu potrebne nikakve ozbiljne vještine, osim poznavanja Linuxa na nivou naprednog korisnika koji može izvršavati komande sa konzole preko ssh-a i koristiti uređivač teksta. Kao rezultat toga, uspjeli smo postaviti jedan-prema-mnogo online emitiranje između pretraživača. Povezivanje dodatnih gledalaca na stream također nije izazvalo probleme.

Kvalitet emitiranja se pokazao sasvim prihvatljivim za webinare i online prijenose. Jedina stvar koja je izazvala neka pitanja je rezolucija videa. Kamera podržava 1280x800, ali rezolucija na testnoj slici je vrlo slična 640x480. Očigledno, ovo pitanje treba razjasniti s programerima.

Video o testiranju emitiranja s web kamere
preko WebRTC servera

Svrha ovog članka je upoznavanje sa njegovom strukturom i principom rada na demo uzorku peer-to-peer video chata (p2p video chat). U tu svrhu ćemo koristiti višekorisnički peer-to-peer video chat demo webrtc.io-demo. Može se preuzeti sa linka: https://github.com/webRTC/webrtc.io-demo/tree/master/site .

Treba napomenuti da je GitHub stranica ili web servis za kolaborativni razvoj web projekata. Na njemu programeri mogu postavljati kodove svojih razvoja, raspravljati o njima i komunicirati jedni s drugima. Osim toga, neke velike IT kompanije hostuju svoja zvanična spremišta na ovoj stranici. Usluga je besplatna za projekte otvorenog koda. GitHub je spremište biblioteka otvorenog koda.

Dakle, preuzeti sa GitHub-a demo primjer peer-to-peer video chata, smjestit ćemo ga na C disk osobnog računala u direktorij kreiran za našu aplikaciju "webrtc_demo".


Rice. jedan

Kao što slijedi iz strukture (slika 1), peer-to-peer video chat se sastoji od klijentskih script.js i serverskih server.js skripti implementiranih u JavaScript programskom jeziku. Skripta (biblioteka) webrtc.io.js (KLIJENT) - pruža organizaciju komunikacije u realnom vremenu između pretraživača prema peer-to-peer šemi: "klient-klijent", te webrtc.io.js (KLIJENT) i webrtc .io.js (SERVER), koristeći WebSocket protokol, oni pružaju dupleks komunikaciju između pretraživača i web servera koristeći arhitekturu "klijent-server".

Skripta webrtc.io.js (SERVER) je uključena u biblioteku webrtc.io i nalazi se u direktoriju node_modules\webrtc.io\lib. Interfejs za video ćaskanje index.html implementiran je u HTML5 i CSS3. Sadržaj webrtc_demo fajlova aplikacije može se vidjeti pomoću jednog od html uređivača, na primjer "Notepad++".

Provjerićemo princip video ćaskanja u PC fajl sistemu. Da biste pokrenuli server (server.js) na računaru, potrebno je da instalirate node.js runtime. Node.js vam omogućava da pokrenete JavaScript kod izvan pretraživača. Node.js možete preuzeti sa linka: http://nodejs.org/ (verzija v0.10.13 od 15.07.2013.). Na glavnoj stranici node.org stranice kliknite na dugme za preuzimanje i idite na http://nodejs.org/download/. Za korisnike Windowsa, prvo preuzmite win.installer (.msi), zatim pokrenite win.installer (.msi) na PC-u i instalirajte nodejs i "npm package manager" u direktorij Program Files.




Rice. 2

Dakle, node.js se sastoji od JavaScript okruženja za razvoj i izvršavanje, kao i od skupa internih modula koji se mogu instalirati pomoću npm menadžera paketa ili menadžera paketa.

Da biste instalirali module, pokrenite sljedeću naredbu u komandnoj liniji iz direktorija aplikacije (na primjer, "webrtc_demo"): npm install ime_modula. Tokom instalacije modula, npm manager kreira folder node_modules u direktoriju iz kojeg je instalacija obavljena. Dok se pokreće, nodejs automatski uključuje module iz direktorija node_modules.

Dakle, nakon instalacije node.js, otvorite komandnu liniju i ažurirajte ekspresni modul u folderu node_modules webrtc_demo direktorija koristeći npm menadžer paketa:

C:\webrtc_demo>npm install express

Express modul je web okvir za node.js ili platformu za razvoj web aplikacija. Da biste imali globalni pristup expressu, možete ga instalirati na sljedeći način: npm install -g express.

Zatim ažuriramo webrtc.io modul:

C:\webrtc_demo>npm install webrtc.io

Zatim, u komandnoj liniji, pokrećemo server: server.js:

C:\webrtc_demo>nodeserver.js


Rice. 3

Sve, server radi uspješno (slika 3). Sada, koristeći web pretraživač, možete kontaktirati server preko ip-adrese i preuzeti web stranicu index.html sa koje će web pretraživač izdvojiti kod klijenta skripte - script.js i webrtc.io.js skriptni kod, i izvršiti ih. Da bi peer-to-peer video ćaskanje funkcionisalo (da bi se uspostavila veza između dva pretraživača), potrebno je da iz dva pretraživača koji podržavaju webrtc kontaktiraju signalni server koji radi na node.js preko ip adrese.

Kao rezultat, otvorit će se interfejs klijentskog dijela komunikacijske aplikacije (video chat) sa zahtjevom za dozvolom za pristup kameri i mikrofonu (slika 4).



Rice. četiri

Nakon klika na dugme "Dozvoli", kamera i mikrofon su povezani za multimedijalnu komunikaciju. Pored toga, preko interfejsa za video ćaskanje, možete komunicirati sa tekstualnim podacima (slika 5).



Rice. 5

Treba napomenuti da . Server signalizira i uglavnom je dizajniran za uspostavljanje veze između pretraživača korisnika. Skripta server.js koja pruža WebRTC signalizaciju koristi Node.js za pokretanje.