WebRTC-l põhinev P2P-videovestlus. WebRTC

Euroopa internetikasutajad jagunevad kahte ossa: Allenbachis (Saksamaa) asuva Avaliku Arvamuse Uurimise Instituudi uuringu kohaselt on Skype’ist vestlus- ja kiirsuhtlussüsteemid muutunud 16,5 miljoni täiskasvanu ja lapse igapäevaelu lahutamatuks osaks, 9 miljonile inimesele. kasutavad neid teenuseid iga juhtumi järel ja 28 miljonit ei puuduta neid.

See võib muutuda, kui Firefox nüüd integreerub reaalajas kommunikatsioonitehnoloogia (WebRTC), aga ka klient ise. Heli- ja videovestluse alustamine pole nüüd keerulisem kui veebisaidi avamine. Teenused nagu Facebook ja Skype aga tuginevad lahendustele, mis kasutavad eraldi klienti ja loovad konto.

WebRTC-d ei erista mitte ainult kasutusmugavus. See meetod võimaldab teil isegi installida otseühendus kahe brauseri vahel. Nii ei liigu heli- ja videoandmed läbi serveri, kus võib esineda ülekoormust või kus administraator ei ole eriti tundlik privaatsuse või andmekaitse suhtes. Tänu otseühendusele ei nõua WebRTC registreerimist ega Konto mis tahes teenuses.

Vestluse alustamiseks peate järgima ainult linki. Suhtlemine jääb privaatseks, kuna andmevoog on krüpteeritud. Reaalajas suhtlus brauseri kaudu Google'i ettevõte hakkas aktiivselt tegelema 2011. aastal, kui avaldas oma WebRTC juurutuse lähtekoodi.

Varsti pärast seda said Chrome ja Firefox oma WebRTC mootorid. Praegu on nende mobiiliversioonid varustatud nii selle tehnoloogiaga kui ka WebView 3.6 mootoriga, millele on installitud Android 5.0, mida rakendused kasutavad.

Reaalajas suhtlemiseks tuleb veebivaaturis realiseerida sobivad JavaScripti liidesed. GetUserMedia kasutamine tarkvara aktiveerib jäädvustamise heli- ja videoallikatest, st veebikaamerast ja mikrofonist. RTCPeerConnection vastutab nii ühenduse loomise kui ka suhtluse enda eest.

Paralleelselt brauseri integreerimisega töögrupp World Wide Web Consortium (W3C) on WebRTC standardimisprotsessi kiirendanud. See peaks valmima 2015. aastal.

WebRTC on rahul vähesega

WebRTC teenuse kasutamine ei nõua palju ressursse, kuna server ühendab ainult vestluspartnereid. Ühenduse loomine pole samuti eriti keeruline. Esiteks annab brauser WebRTC serverile märku, et ta kavatseb kõne algatada. Ta saab serverist HTTPS lingi – side on krüpteeritud. Kasutaja saadab selle lingi oma vestluskaaslasele. Seejärel küsib brauser kasutajalt luba veebikaamerale ja mikrofonile juurdepääsuks.

Otsese voogedastusühenduse loomiseks vestluspartneriga saab brauser oma IP-aadressi ja konfiguratsiooniandmed WebRTC-teenuselt. Teise inimese veebivaatur teeb sama.

Selleks, et voogedastusühendus toimiks katkestusteta ja hea kvaliteet, töötab brauseris kolm mootorit. Kaks neist optimeerivad ja tihendavad heli- ja videoandmeid, kolmas vastutab nende transpordi eest. See saadab andmeid kaudu SRTP protokoll(Turvaline reaalajas transpordiprotokoll), mis võimaldab krüptitud voogesitus reaalajas.

Kui otseühendust ei saa luua, otsib WebRTC teist teed. Näiteks juhtub see siis, kui võrgusätted takistada STUN-i serveril IP-aadressi teatamast. WebRTC standard näeb ette, et sel juhul vestlus toimub, kuid TURN-serveri vahepealse aktiveerimisega (Traversal Using Relays around NAT). Seega saate veebisaidil netscan.co kontrollida, kas WebRTC on teie arvutis ja teie juurdepääsuga võrgule rakendatud.

Kuidas ühendus luuakse

Esmalt peate vestluse registreerima (1). WebRTC teenus pakub linki, mis tuleb vestluspartnerile saata. Brauser, kasutades STUN-serverit, otsib välja oma IP-aadressi (2), saadab selle teenusele ja saab otseühenduse loomiseks partneri IP-aadressi (3). Kui STUN ebaõnnestub, suunatakse vestlus TURN-serveri (4) abil ümber.

Brauseris WebRTC-tehnoloogiat kasutav suhtlus käivitatakse JavaScripti koodi abil. Pärast seda vastutavad suhtluse eest kolm mootorit: kõne- ja videomootorid koguvad veebikaamerast ja mikrofonist multimeediumiandmeid ning transpordimootor ühendab teabe ja saadab voo krüpteeritud kujul, kasutades SRTP-d (Secure Real-time Protocol).

Millised brauserid WebRTC-ga töötavad?

Chrome'il ja Firefoxil on WebRTC mootor, mis kasutab selliseid teenuseid nagu talky.io. Mozilla brauser saab töötada otse oma kliendiga.

Google ja Mozilla jätkavad reaalajas suhtlemise idee edendamist: Chrome saab korraldada WebRTC konverentsi mitme osalejaga ja Firefoxi uus Hello klient töötati välja koostöös tütarettevõte telekommunikatsioonihiiglane Telefonica. Apple jääb praegu kõrvale, te ei tohiks Safaris WebRTC-d veel oodata. Siiski on palju alternatiivseid iOS-i rakendusi ja Safari pistikprogramme.

Microsoft võtab veidi teistsuguse kursi. Konkurentsi omanikuna Skype'i teenus see ettevõte ei kavatse WebRTC-le nii lihtsalt alla anda. Selle asemel töötab Microsoft välja tehnoloogiat nimega ORTC (Object Real-Time Communications). Internet Explorer.

Erinevused WebRTC-st, nagu erinevad koodekid ja protokollid serveriga kontakti loomiseks, on väikesed ja aja jooksul arenevad need suure tõenäosusega WebRTC standardi täienduseks, mis sisaldab neid erinevusi. Seega jääb maha vaid Apple – nagu ikka.

Foto: tootmisettevõtted; goodluz/Fotolia.com

WebRTC(Web Real-Time Communications) on tehnoloogia, mis võimaldab veebirakendustel ja saitidel heli- ja/või videomeediumivooge jäädvustada ja valikuliselt edastada ning brauserite vahel suvalisi andmeid vahetada, ilma et oleks vaja vahendajaid. Standardite komplekt, mida WebRTC tehnoloogia sisaldab, võimaldab teil vahetada andmeid ja pidada peer-to-peer telekonverentse, ilma et kasutaja peaks installima pistikprogramme või muud kolmanda osapoole tarkvara.

WebRTC koosneb mitmest omavahel ühendatud rakendusliidesest (API) ja protokollist, mis töötavad koos. Siit leitav dokumentatsioon aitab teil mõista WebRTC põhitõdesid, ühenduse seadistamist ja kasutamist andmete ja meedia voogesituse jaoks ning palju muud.

Ühilduvus

Kuna WebRTC juurutamine on alles lapsekingades ja igal brauseril on WebRTC-funktsioon, soovitame tungivalt enne koodiga töötamist kasutada Google'i polütäiteteeki Adapter.js.

Adapter.js kasutab kiilusid ja polütäiteid, et sujuvalt sillata WebRTC rakenduste erinevusi seda toetavate kontekstide vahel. Adapter.js käsitleb ka hankija eesliiteid ja muid atribuutide nimetamise erinevusi, muutes WebRTC-s arendamise lihtsamaks kõige ühilduvamate tulemustega. Teek on saadaval ka NPM-paketina.

Adapter.js teegi edasiseks uurimiseks vaadake.

WebRTC kontseptsioonid ja kasutamine

WebRTC on mitmeotstarbeline ja pakub koos veebile võimsaid multimeediumivõimalusi, sealhulgas heli- ja videokonverentside, failide jagamise, ekraanihõive, identiteedihalduse ja koostalitlusvõime pärandtelefonisüsteemidega, sealhulgas DTMF-toonvalimise tugi. Sõlmede vahelisi ühendusi saab luua kasutamata spetsiaalsed draiverid või pistikprogrammidega ja sageli ilma vaheteenusteta.

Kahe sõlme vaheline ühendus on kujutatud RTCPeerConnectioni liideseobjektina. Kui ühendus on loodud ja avatud, saab RTCPeerConnectioni objekti abil ühendusele lisada meediumivooge (MeediaStream) ja/või andmekanaleid (RTCDataChannel).

Meediumivood võivad koosneda suvalisest arvust meediateabe lugudest (radadest). Neid lugusid esindavad MediaStreamTracki liideseobjektid ja need võivad sisaldada ühte või mitut tüüpi meediumiandmeid, sealhulgas heli, videot, teksti (nt subtiitreid või peatükkide pealkirju). Enamik vooge koosneb vähemalt ühest heliribast (ühest heliribast) või videoribast ning neid saab saata ja vastu võtta voogudena (reaalajas meedia) või faili salvestada.

Samuti saate kasutada kahe sõlme vahelist ühendust suvaliste andmete vahetamiseks, kasutades liideseobjekti RTCDataChannel, mida saab kasutada teenuseteabe, börsiandmete, mängu olekupakettide, failiedastuse või privaatsete andmekanalite edastamiseks.

vaja on rohkem üksikasju ja linke asjakohastele juhenditele ja õpetustele

WebRTC liidesed

Kuna WebRTC pakub liideseid, mis töötavad koos erinevate ülesannete täitmiseks, jagasime need kategooriatesse. Kiireks navigeerimiseks vaadake külgriba registrit.

Ühenduse seadistamine ja haldamine

Neid liideseid kasutatakse WebRTC ühenduste konfigureerimiseks, avamiseks ja haldamiseks. Need esindavad ühekihilisi meediumiühendusi, andmekanaleid ja liideseid, mida kasutatakse teabe vahetamiseks iga sõlme võimaluste kohta, et valida kahesuunalise multimeediumiühenduse loomiseks parim konfiguratsioon.

RTCPeerConnection tähistab vahelist WebRTC ühendust kohalik arvuti ja kaugsõlm. Kasutatakse eduka andmeedastuse haldamiseks kahe sõlme vahel. RTCSessionDescription Esindab seansi parameetreid. Iga RTCSessionDescription sisaldab tüübi kirjeldusi, mis näitab, millist läbirääkimisprotsessi osa (pakkumist/vastust) see kirjeldab, ja seansi SDP deskriptorit. RTCIceCandidate esindab Interneti-ühenduse loomise (ICE) serverikandidaati RTCPeerConnectioni ühenduse loomiseks. RTCIceTransport esindab Interneti-ühenduse rajatise (ICE) teavet. RTCPeerConnectionIceEvent Esindab sündmusi, mis toimuvad ICE kandidaatidel, tavaliselt RTCPeerConnection . Üks tüüp edastatakse see objekt sündmused: jääkandidaat. RTCRtpSender Juhib andmete voogesitust ja edastamist MediaStreamTrack-tüüpi objekti kaudu RTCPeerConnection-tüüpi objekti puhul. RTCRtpReceiver Juhib andmete vastuvõtmist ja dekodeerimist MediaStreamTrack-tüüpi objekti kaudu RTCPeerConnection-tüüpi objekti puhul. RTCTrackEvent Näitab, et uus sissetulev MediaStreamTracki objekt on loodud ja RTCPeerConnectioni objektile on lisatud objekt RTCRtpReceiver. RTCCertificate Esindab sertifikaati, mis kasutab objekti RTCPeerConnection. RTCDataChannel Esindab kahesuunalist andmekanalit kahe ühendussõlme vahel. RTCDataChannelEvent Esitab sündmusi, mis käivitatakse, kui RTCDataChannel-tüüpi objekt on lisatud RTCPeerConnection-tüüpi andmekanali objektile. RTCDTMFSender Juhib kahetoonilise mitmesagedusliku (DTMF) signaali kodeerimist ja edastamist RTCPeerConnection tüüpi objektide jaoks. RTCDTMFToneChangeEvent Näitab sissetulevat Dual Tone Multi Frequency (DTMF) toonimuutuse sündmust. See sündmus ei mullita (kui pole teisiti määratud) ja seda ei saa tühistada (kui pole teisiti määratud). RTCStatsReport teatab asünkroonselt MediaStreamTrack tüüpi läbitud objekti oleku. RTCIdentityProviderRegistrar Registreerib identiteedi pakkuja (idP). RTCIdentityProvider Võimaldab brauseril taotleda identiteedi deklaratsiooni loomist või kontrollimist. RTCIdentityAssertion Esindab praeguse ühenduse kaugsõlme identifikaatorit. Kui sõlm pole veel installitud ja kinnitatud, tagastab liidese viide null . Pärast paigaldamist ei muutu. RTCIdentityEvent Esindab identiteedipakkuja (idP) deklaratsioonisündmuse objekti. RTCPeerConnection tüüpi objekti sündmus. Sellele identiteeditulemuse sündmusele edastatakse üks tüüp. RTCIdentityErrorEvent Esindab identiteedipakkujaga (idP) seotud veasündmuse objekti. RTCPeerConnection tüüpi objekti sündmus. Sellele sündmusele edastatakse kahte tüüpi vead: idpassertionerror ja idpvalidationerror.

Juhendid

WebRTC arhitektuuri ülevaade API-liidese all, mida arendajad kasutavad WebRTC loomiseks ja kasutamiseks, on võrguprotokollid ja ühendusstandardid. See ülevaade on nende standardite esitlus. WebRTC võimaldab teil korraldada ühenduse sõlmedevahelises režiimis, et edastada brauseris suvalisi andmeid, heli-, videovooge või nende kombinatsioone. Selles artiklis heidame pilgu WebRTC seansi elueale, alustades ühenduse loomisest ja kulgedes lõpuni, kuni see katkeb, kui seda enam ei vajata. WebRTC API ülevaade WebRTC koosneb mitmest omavahel seotud rakendusliidestest (API-dest) ja protokollidest, mis töötavad koos, et toetada andme- ja meediumivoogude vahetamist kahe või enama sõlme vahel. See artikkel tutvustab lühike ülevaade kõik need API-d ja nende eesmärk. WebRTC põhitõed See artikkel juhendab teid brauseriülese RTC-rakenduse loomisel. Selle artikli lõpuks peaks teil olema toimiv punkt-punkti andme- ja meediakanal. WebRTC protokollid Selles artiklis tutvustatakse protokolle, mis täiendavad WebRTC API-d. Selles juhendis kirjeldatakse, kuidas kasutada sõlmedevahelist ühendust ja linkimist

Tänapäeval on WebRTC "kuum" tehnoloogia heli ja video voogesitamiseks brauserites. Konservatiivsed tehnoloogiad, nagu HTTP Streaming ja Flash, sobivad paremini salvestatud sisu (nõutava video) levitamiseks ning jäävad WebRTC-le oluliselt alla reaalajas ja võrguülekannete osas, s.t. kus on nõutav minimaalne video latentsusaeg, et vaatajad näeksid toimuvat otse.

Kvaliteetse reaalajas suhtluse võimalus tuleneb WebRTC arhitektuurist endast, kus videovoogude transportimiseks kasutatakse UDP-protokolli, mis on standardne alus video edastamisel minimaalsete viivitustega ja mida kasutatakse laialdaselt reaalajas sidesüsteemides.

Kommunikatsiooni latentsus on oluline veebilevisüsteemides, veebiseminarides ja muudes rakendustes, mis nõuavad interaktiivset suhtlust videoallika, lõppkasutajatega ja nõuavad lahendust.

Veel üks hea põhjus WebRTC proovimiseks on see, et see on kindlasti trend. Täna iga Android Chrome'i brauser toetab seda tehnoloogiat, mis tagab miljonitele seadmetele, mis on valmis saateid vaatama ilma täiendavat tarkvara või konfiguratsioone installimata.

Selleks, et kontrollida WebRTC tehnoloogia töös ja käivitasime sellel lihtsa veebiülekande, kasutasime serveritarkvara Flashphoner WebRTC Media & Broadcasting Server. Funktsioonid näitavad võimalust edastada WebRTC vooge režiimis üks-mitmele, samuti IP-kaamerate ja videovalvesüsteemide tugi RTSP-protokolli kaudu; Selles ülevaates keskendume veebi-veebisaadetele ja nende funktsioonidele.

WebRTC meedia- ja ringhäälinguserveri installimine

Sest selleks Windowsi süsteemid serveriversiooni polnud ja ma ei tahtnud installida virtuaalset masinat nagu VMWare+Linux, et saaksin kodus veebisaateid testida Windowsi arvuti Ei tulnud välja. Aja säästmiseks otsustasime pilvemajutuse näitel kasutada järgmist:

See oli Centos x86_64 versioon 6.5, ilma Amsterdami andmekeskuses eelinstallitud tarkvarata. Seega on meie käsutuses vaid server ja ssh-juurdepääs sellele. Neile, kes on tuttavad konsoolimängudega Linuxi käsud, tõotab WebRTC-serveri installimine olla lihtne ja valutu. Mida me siis tegime:

1. Laadige arhiiv alla:

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

2. Pakkige lahti:

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

3. Installige:

$cd FlashphonerWebCallServer

Installimise ajal sisestage serveri IP-aadress: XXX.XXX.XXX.XXX

4. Aktiveeri litsents:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. Käivitage WCS-server:

$service veebikõneserveri käivitamine

6. Kontrolli logi:

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

7. Kontrollige, kas kaks protsessi on paigas:

$ps aux | grep Flashphoner

Installiprotsess on lõppenud.

WebRTC veebisaadete testimine

Ülekannete testimine osutus lihtsaks asjaks. Lisaks serverile on olemas veebiklient, mis koosneb tosinast Javascriptist, HTML-ist ja CSS-failid ja juurutasime selle installietapis kausta /var/www/html. Ainus asi, mida tuli teha, oli sisestada flashphoner.xml konfiguratsiooni serveri IP-aadress, et veebiklient saaks serveriga ühenduse luua HTML5 Websocketsi kaudu. Kirjeldame testimisprotsessi.

1. Avage Chrome'i brauseris testkliendi leht index.html:

2. Edastamise alustamiseks peate klõpsama ekraani keskel nuppu "Start".
Enne seda peate veenduma, et veebikaamera on ühendatud ja kasutamiseks valmis. Veebikaamerale erinõudeid pole, näiteks kasutasime sülearvutisse sisseehitatud tavalist kaamerat eraldusvõimega 1280x800.

Chrome'i brauser küsib kindlasti juurdepääsu kaamerale ja mikrofonile, et kasutaja saaks aru, et tema video saadetakse Interneti-serverisse ja lubab seda.

3. Liides esindab videovoo edukat edastamist kaamerast WebRTC serverisse. Paremal ülemine nurk indikaator näitab, et voog läheb serverisse, alumises nurgas on video saatmise peatamiseks nupp "Stopp".

Pange tähele allolevas kastis olevat linki. See sisaldab selle voo unikaalset identifikaatorit, nii et igaüks saab vaatamisega liituda. Lihtsalt avage see link oma brauseris. Selle lõikepuhvrisse kopeerimiseks klõpsake nuppu "Kopeeri".

IN tõelised rakendused nagu veebiseminarid, loengud, veebivideosaated või interaktiivne TV, peavad arendajad seda identifikaatorit levitama teatud rühmad vaatajaid, et nad saaksid ühenduda vajalike voogudega, kuid see on juba rakenduse loogika. WebRTC meedia- ja ringhäälinguserver ei mõjuta seda, vaid levitab ainult videoid.

5. Ühendus luuakse ja vaataja näeb voogu ekraanil. Nüüd saab ta lingi kellelegi teisele saata, voo esitamise peatada või sisse lülitada täisekraani režiim, kasutades paremas alanurgas olevaid juhtnuppe.

WebRTC võrguedastusserveri testimise tulemused

Testide ajal tundus latentsus ideaalne. Ping andmekeskusesse oli umbes 100 millisekundit ja viivitus oli silmale nähtamatu. Siit võib eeldada, et tegelik viivitus on sama 100 pluss-miinus mõnikümmend millisekundit puhverdusaja kohta. Võrreldes Flash video: Flash ei toimi nendes testides nii hästi kui WebRTC. Seega, kui liigutate oma käsi sarnases võrgus, on ekraanil liikumine näha alles ühe või kahe sekundi pärast.

Kvaliteedi osas märgime, et kuubikuid saab mõnikord liigutuste järgi eristada. See on kooskõlas VP8 koodeki olemusega ja selle põhieesmärgiga – pakkuda reaalajas videosidet vastuvõetava kvaliteediga ja ilma sideviivitusteta.

Serverit on üsna lihtne paigaldada ja konfigureerida, selle käitamine ei nõua muid tõsiseid oskusi peale Linuxi tundmise edasijõudnud kasutaja tasemel, kes suudab konsoolist ssh-i kaudu käske täita ja kasutada; tekstiredaktor. Selle tulemusel õnnestus meil seadistada brauserite vahel üks-mitmele võrgusaade. Täiendavate vaatajate ühendamine vooga ei tekitanud samuti probleeme.

Saatekvaliteet osutus veebiseminaride ja veebiülekannete jaoks üsna vastuvõetavaks. Ainus, mis küsimusi tekitas, oli video eraldusvõime. Kaamera toetab 1280x800, kuid testpildi eraldusvõime on väga sarnane 640x480-ga. Ilmselt tuleb see teema arendajatega selgeks rääkida.

Video veebikaamerast testimise kohta
WebRTC serveri kaudu

Selle artikli eesmärk on kasutada peer-to-peer videovestluse (p2p-videovestluse) demonäidist, et tutvuda selle struktuuri ja tööpõhimõttega. Sel eesmärgil kasutame mitme kasutajaga peer-to-peer videovestluse demo webrtc.io-demo. Selle saab alla laadida lingilt: https://github.com/webRTC/webrtc.io-demo/tree/master/site.

Tuleb märkida, et GitHub on sait või veebiteenus veebiprojektide koostöö arendamiseks. Sellele saavad arendajad postitada oma arenduste koode, neid arutada ja omavahel suhelda. Lisaks postitavad mõned suured IT-ettevõtted sellele saidile oma ametlikud hoidlad. Teenus on avatud lähtekoodiga projektide jaoks tasuta. GitHub on avatud ja tasuta lähtekooditeekide hoidla.

Seega asetame GitHubist alla laaditud peer-to-peer videovestluse demonäidise kettale C personaalarvuti meie rakenduse "webrtc_demo" jaoks loodud kataloogis.


Riis. 1

Nagu struktuurist (joonis 1) tuleneb, koosneb peer-to-peer videovestlus kliendi script.js ja serveri server.js skriptidest, mis on realiseeritud keeles JavaScripti programmeerimine. Skript (teek) webrtc.io.js (KLIENT) – võimaldab korraldada reaalajas suhtlust brauserite vahel, kasutades peer-to-peer skeemi: "klient-klient" ning webrtc.io.js (CLIENT) ja webrtc. io.js (SERVER), WebSocket-protokolli kasutades pakuvad nad duplekssuhtlust brauseri ja veebiserveri vahel, kasutades klient-serveri arhitektuuri.

Skript webrtc.io.js (SERVER) sisaldub webrtc.io teegis ja asub kataloogis node_modules\webrtc.io\lib. Videovestluse liides index.html on realiseeritud HTML5-s ja CSS3-s. Rakenduse webrtc_demo failide sisu saab vaadata mõne html-redaktoriga, näiteks "Notepad++".

Kontrollime videovestluse tööpõhimõtet failisüsteem PC. Serveri (server.js) arvutis käitamiseks peate installima käituskeskkonna node.js. Node.js võimaldab käivitada JavaScripti koodi väljaspool brauserit. Node.js-i saate alla laadida lingilt: http://nodejs.org/ (versioon v0.10.13 15.07.13 seisuga). Klõpsake veebisaidi node.org avalehel allalaadimisnupul ja minge aadressile http://nodejs.org/download/. Sest Windowsi kasutajad esmalt laadige alla win.installer (.msi), seejärel käivitage arvutis fail win.installer (.msi) ja installige programmifailide kataloogi nodejs ja "npm-paketihaldur".




Riis. 2

Seega koosneb node.js arendus- ja käituskeskkonnast JavaScripti kood, samuti sisemiste moodulite komplektist, mida saab installida paketihalduri npm või halduri abil.

Moodulite installimiseks peate käsurida Käivitage rakenduste kataloogis (näiteks "webrtc_demo") käsk: npm installimooduli_nimi. Moodulite installimise käigus loob npm-haldur kataloogi, kust installimine toimus, kausta node_modules. Töö ajal ühendab nodejs automaatselt moodulid kataloogist node_modules.

Niisiis, pärast node.js installimist avage käsurida ja värskendage npm paketihalduri abil kataloogi webrtc_demo kaustas node_modules ekspressmoodulit:

C:\webrtc_demo>npm install express

Ekspressmoodul on node.js-i veebiraamistik või veebiplatvorm rakenduste arendamiseks. Ekspressile globaalse juurdepääsu saamiseks saate selle installida järgmiselt: npm install -g express.

Seejärel värskendage moodulit webrtc.io:

C:\webrtc_demo>npm installige webrtc.io

Seejärel käivitame käsureal serveri: server.js:

C:\webrtc_demo>node server.js


Riis. 3

See on kõik, server töötab edukalt (joonis 3). Nüüd saate veebibrauserit kasutades serveriga ühendust võtta IP-aadressi järgi ja laadida veebilehe index.html, kust veebibrauser eraldab kliendi skriptikoodi - script.js ja webrtc.io.js skriptikoodi ning neid hukata. Peer-to-peer videovestluse kasutamiseks (kahe brauseri vahelise ühenduse loomiseks) peate võtma ühendust signaaliserveriga, mis töötab saidil node.js kahes webrtc-d toetavas brauseris.

Selle tulemusena avaneb suhtlusrakenduse (videovestluse) kliendiosa liides, kus küsitakse luba juurdepääsuks kaamerale ja mikrofonile (joonis 4).



Riis. 4

Pärast nupu "Luba" klõpsamist ühendatakse kaamera ja mikrofon multimeediumisuhtluseks. Lisaks saate videovestluse liidese kaudu suhelda tekstiandmete kaudu (joonis 5).



Riis. 5

Tuleb märkida, et. Server on signalisatsiooniserver ja on peamiselt mõeldud kasutajate brauserite vaheliste ühenduste loomiseks. Node.js-i kasutatakse serveriskripti server.js käitamiseks, mis pakub WebRTC signaalimist.