P2P video tērzēšana, kuras pamatā ir WebRTC. WebRTC

Eiropas interneta lietotāji ir sadalīti divās daļās: saskaņā ar Alenbahas (Vācija) Sabiedriskās domas analīzes institūta veikto aptauju Skype, tērzēšanas un tūlītējās ziņojumapmaiņas sistēmas ir kļuvušas par neatņemamu ikdienas sastāvdaļu 16,5 miljoniem pieaugušo un bērnu, 9 miljoni izmanto šos pakalpojumus katrā gadījumā atsevišķi, un 28 miljoni tos neaiztiek.

Situācija var mainīties, jo tagad Firefox ir integrēts reāllaika komunikācijas tehnoloģija (WebRTC), kā arī pats klients. Audio un video tērzēšanas sākšana tagad nav grūtāka par vietnes atvēršanu. Savukārt tādi pakalpojumi kā Facebook un Skype paļaujas uz risinājumiem, izmantojot atsevišķu klientu un konta izveidi.

WebRTC ir ne tikai viegli lietojams. Šī metode pat ļauj iestatīt tiešs savienojums starp divām pārlūkprogrammām. Tādā veidā audio un video dati nenonāk caur serveri, kur var rasties pārslodze vai kur administrators nav īpaši jutīgs pret privātumu vai datu aizsardzību. Izmantojot tiešu savienojumu, WebRTC nav nepieciešama reģistrācija vai konts nevienā pakalpojumā.

Lai sāktu sarunu, jums tikai jāievēro saite. Komunikācija paliek privāta jo datu straume ir šifrēta. Reāllaika saziņā, izmantojot pārlūkprogrammu, Google sāka aktīvi iesaistīties 2011. gadā, kad publicēja WebRTC ieviešanas pirmkodu.

Drīz pēc tam Chrome un Firefox saņēma savus WebRTC dzinējus. Šobrīd viņu mobilās versijas ir aprīkotas gan ar šo tehnoloģiju, gan WebView 3.6 dzinēju, kas instalēts ar Android 5.0, ko izmanto aplikācijas.

Reāllaika saziņai tīmekļa skatītājā ir jāievieš atbilstošas ​​JavaScript saskarnes. Izmantojot GetUserMedia, programmatūra nodrošina tveršanu no audio un video avotiem, t.i., tīmekļa kameras un mikrofona. RTCPeerConnection ir atbildīgs par savienojuma izveidi, kā arī par pašu komunikāciju.

Paralēli pārlūkprogrammas integrācijai World Wide Web Consortium (W3C) darba grupa ir virzījusi WebRTC standartizācijas procesu. Tas jāpabeidz 2015. gadā.

WebRTC ir apmierināts ar maz

WebRTC pakalpojuma izmantošana neprasa daudz resursu, jo serveris savieno tikai draugus. Arī savienojuma izveide nav īpaši sarežģīta. Pirmkārt, pārlūkprogramma signalizē WebRTC serverim, ka tas plāno sākt zvanu. Tas saņem HTTPS saiti no servera - savienojums ir šifrēts. Lietotājs nosūta šo saiti savam sarunu biedram. Pēc tam pārlūkprogramma pieprasa lietotājam atļauju piekļūt tīmekļa kamerai un mikrofonam.

Lai izveidotu tiešu straumēšanas savienojumu ar otru pusi, pārlūkprogramma saņem savu IP adresi un konfigurācijas datus no WebRTC pakalpojuma. Drauga tīmekļa pārlūkprogramma dara to pašu.

Lai straumēšanas savienojums darbotos nevainojami un labā kvalitātē, pārlūkprogrammā darbojas trīs dzinēji. Divi no tiem optimizē un saspiež audio un video datus, trešais ir atbildīgs par to transportēšanu. Tas sūta datus, izmantojot SRTP protokols(Drošs reāllaika transporta protokols), kas nodrošina reāllaika šifrētu straumēšanu.

Ja tiešais savienojums neizdodas, WebRTC meklē citu ceļu. Piemēram, tas notiek, ja tīkla iestatījumi neļauj STUN serverim ziņot par IP adresi. WebRTC standarts nosaka, ka šajā gadījumā saruna notiks, bet ar starpposma TURN servera iekļaušanu (Traversal Using Relays around NAT). Tātad vietnē netscan.co varat pārbaudīt, vai WebRTC ir ieviests jūsu datorā un ar jūsu piekļuvi tīmeklim.

Kā tiek izveidots savienojums

Vispirms ir jāreģistrē saruna (1). WebRTC pakalpojums nodrošina saiti, kas jānosūta sarunu biedram. Pārlūks, izmantojot STUNserveri, uzzina savu IP adresi (2), nosūta to pakalpojumam un saņem partnera IP, lai izveidotu tiešu savienojumu (3). Ja STUN neizdodas, saruna tiek novirzīta, izmantojot TURN serveri (4).

Saziņa, izmantojot WebRTC tehnoloģiju pārlūkprogrammā, tiek palaista, izmantojot JavaScript kodu. Pēc tam par saziņu ir atbildīgi trīs dzinēji: balss un video dzinēji savāc multivides datus no tīmekļa kameras un mikrofona, un transporta dzinējs apvieno informāciju un nosūta straumi šifrētā veidā, izmantojot drošo reāllaika protokolu (SRTP).

Kuras pārlūkprogrammas darbojas ar WebRTC

Chrome un Firefox ir aprīkoti ar WebRTC dzinēju, kas izmanto tādus pakalpojumus kā talky.io. Pārlūkprogramma Mozilla var strādāt tieši ar savu klientu.

Google un Mozilla turpina attīstīt reāllaika saziņas ideju: Chrome var uzņemt WebRTC konferenci ar vairākiem dalībniekiem, un jaunais Hello klients pārlūkprogrammā Firefox tiek izstrādāts ar telekomunikāciju giganta Telefonica meitasuzņēmuma palīdzību. Apple pagaidām paliek malā, pagaidām nevajadzētu gaidīt WebRTC pārlūkprogrammā Safari. Tomēr pārlūkprogrammai Safari ir daudz alternatīvu iOS lietotņu un spraudņu.

Microsoft izvēlas nedaudz citu kursu. Būdams konkurētspējīga Skype pakalpojuma īpašnieks, šis uzņēmums negatavojas tik viegli kapitulēt WebRTC priekšā. Tā vietā Microsoft izstrādā tehnoloģiju, ko sauc par ORTC (Object Real-Time Communications) pārlūkprogrammai Internet Explorer.

Atšķirības no WebRTC, piemēram, dažādi kodeki un protokoli kontakta nodibināšanai ar serveri, ir nelielas un laika gaitā, visticamāk, papildinās WebRTC standartu, kurā būs iekļautas šīs atšķirības. Tādējādi atpaliek tikai Apple - kā parasti.

Fotogrāfija: ražošanas uzņēmumi; goodluz/Photolia.com

WebRTC(Web Real-Time Communications) ir tehnoloģija, kas ļauj tīmekļa lietojumprogrammām un vietnēm uztvert un selektīvi pārsūtīt audio un/vai video multivides straumes, kā arī apmainīties ar patvaļīgiem datiem starp pārlūkprogrammām, neizmantojot starpniekus. Standartu kopums, ko ietver WebRTC tehnoloģija, nodrošina datu apmaiņu un vienādranga telekonferences, lietotājam neinstalējot spraudņus vai citu trešās puses programmatūru.

WebRTC sastāv no vairākām savstarpēji saistītām programmēšanas saskarnēm (API) un protokoliem, kas darbojas kopā. Šeit atrodamā dokumentācija palīdzēs izprast WebRTC pamatus, datu un multivides savienojuma iestatīšanu un lietošanu un daudz ko citu.

Saderība

Tā kā WebRTC ieviešana tiek izstrādāta un katrā pārlūkprogrammā ir WebRTC funkcionalitāte, pirms darba pie koda izveides ir ļoti ieteicams izmantot Google Adapter.js poliaizpildes bibliotēku.

Adapter.js izmanto ķīļus un polifillus, lai nemanāmi izlīdzinātu atšķirības WebRTC ieviešanā kontekstos, kas to atbalsta. Adapter.js apstrādā arī pārdevēju prefiksus un citas rekvizītu nosaukumu atšķirības, atvieglojot WebRTC izstrādes procesu ar konsekventāko rezultātu. Bibliotēka ir pieejama arī kā NPM pakotne.

Lai uzzinātu vairāk par Adapter.js bibliotēku, skatiet .

WebRTC jēdzieni un lietojums

WebRTC ir daudzpusīga un kopā ar tīmeklī nodrošina jaudīgas multivides iespējas, tostarp atbalstu audio un video konferencēm, failu koplietošanai, ekrāna tveršanai, identitātes pārvaldīšanai un savietojamībai ar mantotajām tālruņu sistēmām, tostarp atbalstu DTMF toņu sastādīšanai. Savienojumus starp mezgliem var izveidot, neizmantojot īpašus draiverus vai spraudņus un bieži vien bez starppakalpojumiem.

Savienojums starp diviem mezgliem tiek attēlots kā RTCPeerConnection interfeisa objekts. Kad savienojums ir izveidots un atvērts, izmantojot RTCPeerConnection objektu, savienojumam var pievienot multivides straumes (MediaStream s) un/vai datu kanālus (RTCDataChannel s).

Multivides straumes var sastāvēt no jebkura multivides informācijas celiņu (celiņu) skaita. Šajos celiņos, ko attēlo MediaStreamTrack saskarnes objekti, var būt viens vai vairāki multivides veidi, tostarp audio, video, teksts (piemēram, subtitri vai nodaļu virsraksti). Lielākā daļa straumju sastāv no vismaz viena audio celiņa (viena audio celiņa) vai video celiņa, un tās var nosūtīt un saņemt kā straumes (reāllaika multivide) vai saglabāt failā.

Varat arī izmantot savienojumu starp diviem mezgliem, lai apmainītos ar patvaļīgiem datiem, izmantojot interfeisa objektu RTCDataChannel, ko var izmantot pakalpojumu informācijas, krājumu datu, spēļu statusa pakotņu, failu pārsūtīšanas vai privāto datu pārsūtīšanas kanālu pārsūtīšanai.

nepieciešama sīkāka informācija un saites uz attiecīgiem ceļvežiem un pamācībām

WebRTC saskarnes

Sakarā ar to, ka WebRTC nodrošina saskarnes, kas darbojas kopā dažādu uzdevumu veikšanai, esam tās sadalījuši kategorijās. Skatiet sānjoslas alfabētisko rādītāju ātrai navigācijai.

Savienojuma iestatīšana un pārvaldība

Šīs saskarnes tiek izmantotas, lai iestatītu, atvērtu un pārvaldītu WebRTC savienojumus. Tie attēlo vienādranga multivides savienojumus, datu kanālus un saskarnes, ko izmanto, lai apmainītos ar informāciju par katra mezgla iespējām, lai izvēlētos labāko konfigurāciju, izveidojot divvirzienu multivides savienojumu.

RTCPeerConnection ir WebRTC savienojums starp vietējo datoru un attālo resursdatoru. Izmanto veiksmīgai datu pārsūtīšanai starp diviem mezgliem. RTCSessionDescription Apzīmē sesijas parametrus. Katrs RTCSessionDescription satur tipu aprakstus, kas norāda, kuru sarunu procesa daļu (piedāvājumu/atbildi) tas apraksta, un SDP sesijas deskriptoru. RTCIceCandidate Apzīmē interneta savienojuma izveides (ICE) servera kandidātu RTCPeerConnection savienojuma izveidei. RTCIceTransport atspoguļo informāciju par interneta savienojamības iespēju (ICE). RTCPeerConnectionIceEvent Apzīmē notikumus, kas notiek ICE kandidātos, parasti RTCPeerConnection . Šim notikuma objektam tiek nodots viens veids: icecandidate . RTCRtpSender Kontrolē datu kodēšanu un pārsūtīšanu caur MediaStreamTrack tipa objektu RTCPeerConnection tipa objektam. RTCRtpReceiver Kontrolē datu saņemšanu un dekodēšanu, izmantojot MediaStreamTrack tipa objektu RTCPeerConnection tipa objektam. RTCTrackEvent Norāda, ka ir izveidots jauns MediaStreamTrack tipa ienākošais objekts un objektam RTCPeerConnection ir pievienots RTCRtpReceiver tipa objekts. RTCCertificate Apzīmē sertifikātu, ko izmanto RTCPeerConnection objekts. RTCDataChannel Apzīmē divvirzienu datu kanālu starp diviem savienojuma mezgliem. RTCDataChannelEvent Apzīmē notikumus, kas tiek parādīti, kad RTCDataChannel tipa objekts ir pievienots RTCPeerConnection tipa objektam datu kanāls. RTCDTMFSender Kontrolē divu toņu daudzfrekvenču (DTMF) signālu kodēšanu un pārraidi objektam, kura tips ir RTCPeerConnection. RTCDTMFToneChangeEvent Norāda ienākošu DTMF toņa maiņas notikumu. Šis notikums nav burbulis (ja nav norādīts citādi) un nav atceļams (ja nav norādīts citādi). RTCStatsReport Asinhroni ziņo par statusu nodotajam MediaStreamTrack tipa objektam. RTCIdentityProviderRegistrar Reģistrē identitātes nodrošinātāju (idP). RTCIdentityProvider Ļauj pārlūkprogrammai pieprasīt identitātes deklarācijas izveidi vai validāciju. RTCIdentityAssertion Apzīmē pašreizējā savienojuma attālā resursdatora ID. Ja mezgls vēl nav instalēts un apstiprināts, saskarnes atsauce atgriezīs nulli. Pēc uzstādīšanas tas nemainās. RTCIdentityEvent Apzīmē identitātes nodrošinātāja (idP) deklarāciju par identifikatora notikuma objektu. RTCPeerConnection tipa objekta notikums. Viens veids tiek nodots šim identitātes rezultāta notikumam. RTCIdentityErrorEvent Pārstāv ar identitātes nodrošinātāju (idP) saistītu kļūdas notikuma objektu. RTCPeerConnection tipa objekta notikums. Šim notikumam tiek nodotas divu veidu kļūdas: idpassertionerror un idpvalidationerror .

Ceļveži

WebRTC arhitektūras pārskats Zem API, ko izstrādātāji izmanto, lai izveidotu un izmantotu WebRTC, ir tīkla protokolu un savienojuma standartu kopa. Šis pārskats ir šo standartu demonstrācija. WebRTC ļauj iestatīt savienojumu starp mezgliem, lai pārlūkprogrammā pārsūtītu patvaļīgus datus, audio, video straumes vai jebkuru to kombināciju. Šajā rakstā mēs apskatīsim WebRTC sesijas darbības laiku, sākot no savienojuma izveides un pārtraukšanas līdz tā pārtraukšanai, kad tas vairs nav vajadzīgs. WebRTC pārskats WebRTC API sastāv no vairākām savstarpēji saistītām programmēšanas saskarnēm (API) un protokoliem, kas darbojas kopā, lai nodrošinātu atbalstu datu un multivides straumju apmaiņai starp diviem vai vairākiem mezgliem. Šajā rakstā ir sniegts īss pārskats par katru no šīm API un to mērķi. WebRTC pamati Šajā rakstā ir sniegta informācija par RTC lietojumprogrammas izveidi vairākām pārlūkprogrammām. Līdz šī raksta beigām jums vajadzētu būt strādājošam datu un multivides kanālam, kas darbojas no punkta uz punktu. WebRTC protokoli Šajā rakstā ir aprakstīti protokoli, kuriem ir izveidota WebRTC API. Šajā rokasgrāmatā ir aprakstīts, kā varat izmantot savienojumu starp mezgliem un saistīto

Mūsdienās WebRTC ir "karstākā" tehnoloģija audio un video straumēšanai pārlūkprogrammās. Konservatīvās tehnoloģijas, piemēram, HTTP straumēšana un Flash, ir piemērotākas ierakstītā satura (video pēc pieprasījuma) izplatīšanai un ir ievērojami zemākas par WebRTC reāllaika un tiešsaistes apraides ziņā, t.i. kur nepieciešams minimāls video latentums, ļaujot skatītājiem redzēt notiekošo "tiešraidē".

Kvalitatīvas reāllaika komunikācijas iespēja nāk no pašas WebRTC arhitektūras, kur video straumju transportēšanai tiek izmantots UDP protokols, kas ir standarta pamats video pārraidīšanai ar minimālu aizkavi un tiek plaši izmantots reāllaika sakaru sistēmās.

Saziņas latentums ir svarīgs tiešraides straumēšanas sistēmās, tīmekļa semināros un citās lietojumprogrammās, kur nepieciešama interaktīva saziņa ar video avotu, galalietotājiem un risinājumu.

Vēl viens labs iemesls izmēģināt WebRTC noteikti ir tendence. Mūsdienās katrs Android Chrome pārlūks atbalsta šo tehnoloģiju, kas garantē miljoniem ierīču, kas ir gatavas skatīties pārraidi, neinstalējot papildu programmatūru un konfigurācijas.

Lai pārbaudītu WebRTC tehnoloģiju darbībā un uzsāktu vienkāršu tiešsaistes apraidi, mēs izmantojām Flashphoner WebRTC Media & Broadcasting Server servera programmatūru. Funkcijas deklarē iespēju pārraidīt WebRTC straumes režīmā viens pret daudziem, kā arī atbalstu IP kamerām un videonovērošanas sistēmām, izmantojot RTSP protokolu; šajā pārskatā mēs koncentrēsimies uz tīmekļa tīmekļa pārraidēm un to funkcijām.

WebRTC multivides un apraides servera instalēšana

Tā kā Windows sistēmai nebija servera versijas un es nevēlējos instalēt tādu virtuālo mašīnu kā VMWare + Linux, es nevarēju pārbaudīt tiešsaistes pārraides savā mājas Windows datorā. Lai ietaupītu laiku, mēs nolēmām izmantot mākoņa mitināšanas piemēru:

Tā bija Centos x86_64 versija 6.5 bez iepriekš instalētas programmatūras Amsterdamas datu centrā. Tādējādi viss, kas mūsu rīcībā ir, ir serveris un ssh piekļuve tam. Tiem, kas pārzina Linux konsoles komandas, WebRTC servera instalēšana solās būt vienkārša un nesāpīga. Tātad, ko mēs izdarījām:

1. Lejupielādēt arhīvu:

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

2. Izsaiņot:

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

3. Uzstādīt:

$cd FlashphonerWebCallServer

Instalēšanas laikā ievadiet servera IP adresi: XXX.XXX.XXX.XXX

4. Aktivizēt licenci:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. Startēt WCS serveri:

$service webcallserver startēšana

6. Pārbaudes žurnāls:

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

7. Pārbaudiet, vai ir ieviesti divi procesi:

$ps aux | grep Flashphoner

Instalēšanas process ir pabeigts.

WebRTC tiešraides straumju pārbaude

Pārraižu pārbaude izrādījās vienkārša lieta. Papildus serverim ir arī tīmekļa klients, kas sastāv no dučiem Javascript, HTML un CSS failiem un kuru mēs instalēšanas posmā ievietojām mapē /var/www/html. Vienīgais, kas bija jādara, bija ievadīt servera IP adresi flashphoner.xml konfigurācijā, lai tīmekļa klients varētu izveidot savienojumu ar serveri, izmantojot HTML5 Websockets. Aprakstīsim testēšanas procesu.

1. Pārlūkprogrammā Chrome atveriet testa klienta lapu index.html:

2. Lai sāktu apraidi, ekrāna vidū jānoklikšķina uz pogas "Sākt".
Pirms to izdarīt, jums ir jāpārliecinās, vai tīmekļa kamera ir pievienota un gatava darbam. Tīmekļa kamerai nav īpašu prasību, piemēram, mēs izmantojām standarta iebūvēto klēpjdatora kameru ar izšķirtspēju 1280 × 800.

Pārlūks Chrome noteikti prasīs piekļuvi kamerai un mikrofonam, lai lietotājs saprastu, ka viņa video tiks nosūtīts uz interneta serveri un ļautu viņam to darīt.

3. Interfeiss atspoguļo veiksmīgu video straumes pārraidi no kameras uz WebRTC serveri. Augšējā labajā stūrī indikators norāda, ka straume iet uz serveri, apakšējā stūrī ir poga "Stop", lai pārtrauktu video sūtīšanu.

Apskatiet zemāk esošo saiti. Tajā ir unikāls šīs straumes identifikators, tāpēc skatam var pievienoties ikviens. Vienkārši atveriet šo saiti pārlūkprogrammā. Lai to kopētu starpliktuvē, jums jānoklikšķina uz pogas "Kopēt".

Reālās lietojumprogrammās, piemēram, vebināros, lekcijās, tiešsaistes video pārraidēs vai interaktīvā televīzijā, izstrādātājiem būs jāīsteno šī identifikatora izplatīšana noteiktām skatītāju grupām, lai viņi varētu izveidot savienojumu ar vēlamajām straumēm, taču tāda ir aplikācijas loģika. WebRTC multivides un apraides serveris tas neietekmē, bet tikai nodarbojas ar video izplatīšanu.

5. Savienojums ir izveidots, un skatītājs ekrānā redz straumi. Tagad viņš var nosūtīt saiti kādam citam, apturēt straumes atskaņošanu vai iespējot pilnekrāna režīmu, izmantojot vadīklas apakšējā labajā stūrī.

WebRTC servera testēšanas rezultāti tiešsaistes pārraidēm

Pārbaužu laikā latentums šķita ideāls. ping uz datu centru bija aptuveni 100 milisekundes, un aizkave nebija redzama acij. No šejienes mēs varam pieņemt, ka reālā aizkave ir tāda pati 100 plus vai mīnus daži desmiti milisekundes buferizācijas laikam. Salīdzinot ar Flash video, Flash šajos testos nedarbojas tik labi kā WebRTC. Tātad, ja pārvietojat roku līdzīgā tīklā, kustību ekrānā var redzēt tikai pēc vienas/divām sekundēm.

Runājot par kvalitāti, mēs atzīmējam, ka dažreiz kustībās var atšķirt kubus. Tas atbilst VP8 kodeka būtībai, un tā galvenais mērķis ir nodrošināt reāllaika video saziņu ar pieņemamu kvalitāti un bez sakaru kavēšanās.

Serveris ir diezgan viegli uzstādāms un konfigurējams, tā palaišanai nav nepieciešamas nekādas nopietnas prasmes, izņemot Linux zināšanas pieredzējuša lietotāja līmenī, kurš var izpildīt komandas no konsoles caur ssh un lietot teksta redaktoru. Rezultātā mums izdevās izveidot tiešsaistes apraidi viens pret daudziem starp pārlūkprogrammām. Papildu skatītāju pievienošana straumei arī nesagādāja problēmas.

Pārraides kvalitāte izrādījās diezgan pieņemama vebināriem un tiešsaistes pārraidēm. Vienīgais, kas radīja dažus jautājumus, bija video izšķirtspēja. Kamera atbalsta 1280x800, bet testa attēla izšķirtspēja ir ļoti līdzīga 640x480. Acīmredzot šis jautājums ir jāprecizē ar izstrādātājiem.

Video par testēšanas pārraidi no tīmekļa kameras
izmantojot WebRTC serveri

Šī raksta mērķis ir iepazīties ar tā struktūru un darbības principu peer-to-peer video tērzēšanas (p2p video tērzēšanas) demonstrācijas paraugā. Šim nolūkam mēs izmantosim vairāku lietotāju vienādranga video tērzēšanas demonstrāciju webrtc.io-demo. To var lejupielādēt no saites: https://github.com/webRTC/webrtc.io-demo/tree/master/site.

Jāpiebilst, ka GitHub ir vietne vai tīmekļa pakalpojums tīmekļa projektu sadarbības izstrādei. Tajā izstrādātāji var ievietot savu izstrādes kodus, apspriest tos un sazināties savā starpā. Turklāt daži lieli IT uzņēmumi šajā vietnē mitina savas oficiālās krātuves. Pakalpojums ir bezmaksas atvērtā pirmkoda projektiem. GitHub ir atvērtā pirmkoda bibliotēku krātuve.

Tātad, no GitHub lejupielādējot vienādranga video tērzēšanas demonstrācijas paraugu, mēs to ievietosim personālā datora C diskdzinī direktorijā, kas izveidots mūsu lietojumprogrammai "webrtc_demo".


Rīsi. viens

Kā izriet no struktūras (1. att.), peer-to-peer video tērzēšana sastāv no klienta script.js un servera server.js skriptiem, kas ieviesti JavaScript programmēšanas valodā. Skripts (bibliotēka) webrtc.io.js (CLIENT) - nodrošina reāllaika saziņas organizēšanu starp pārlūkprogrammām saskaņā ar vienādranga shēmu: "klients-klients" un webrtc.io.js (CLIENT) un webrtc .io.js (SERVER), izmantojot WebSocket protokolu, tie nodrošina duplekso saziņu starp pārlūkprogrammu un tīmekļa serveri, izmantojot "klienta-servera" arhitektūru.

Webrtc.io.js (SERVER) skripts ir iekļauts webrtc.io bibliotēkā un atrodas node_modules\webrtc.io\lib direktorijā. Index.html video tērzēšanas saskarne ir ieviesta HTML5 un CSS3. Webrtc_demo lietojumprogrammas failu saturu var apskatīt ar kādu no html redaktoriem, piemēram, "Notepad++".

Mēs pārbaudīsim video tērzēšanas principu datora failu sistēmā. Lai darbinātu serveri (server.js) datorā, jāinstalē node.js izpildlaiks. Node.js ļauj palaist JavaScript kodu ārpus pārlūkprogrammas. Varat lejupielādēt node.js no saites: http://nodejs.org/ (versija v0.10.13 15.07.13.). Vietnes node.org galvenajā lapā noklikšķiniet uz lejupielādes pogas un dodieties uz http://nodejs.org/download/. Windows lietotājiem vispirms lejupielādējiet win.installer (.msi), pēc tam palaidiet win.installer (.msi) datorā un instalējiet nodejs un "npm pakotņu pārvaldnieku" direktorijā Programmas faili.




Rīsi. 2

Tādējādi node.js sastāv no JavaScript izstrādes un izpildes vides, kā arī iekšējo moduļu kopas, ko var instalēt, izmantojot npm pakotņu pārvaldnieku vai pakotņu pārvaldnieku.

Lai instalētu moduļus, lietojumprogrammu direktorija komandrindā palaidiet šādu komandu (piemēram, "webrtc_demo"): npm instalēšanas moduļa_nosaukums. Moduļu instalēšanas laikā npm pārvaldnieks direktorijā, no kura tika veikta instalēšana, izveido mapi node_modules. Darbojoties, nodejs automātiski iekļauj moduļus no direktorija node_modules.

Tātad pēc node.js instalēšanas atveriet komandrindu un atjauniniet ekspresmoduli webrtc_demo direktorija mapē node_modules, izmantojot npm pakotņu pārvaldnieku:

C:\webrtc_demo>npm install express

Ātrais modulis ir tīmekļa ietvars node.js vai tīmekļa lietojumprogrammu izstrādes platformai. Lai iegūtu globālu piekļuvi Express, varat to instalēt šādi: npm install -g express.

Pēc tam mēs atjauninām webrtc.io moduli:

C:\webrtc_demo>npm instalējiet webrtc.io

Pēc tam komandrindā mēs startējam serveri: server.js:

C:\webrtc_demo>nodeserver.js


Rīsi. 3

Viss, serveris darbojas veiksmīgi (3. attēls). Tagad, izmantojot tīmekļa pārlūkprogrammu, varat sazināties ar serveri pēc IP adreses un lejupielādēt index.html tīmekļa lapu, no kuras tīmekļa pārlūkprogramma izvilks klienta skripta kodu - script.js un webrtc.io.js skripta kodu, un izpildīt tos. Lai vienādranga video tērzēšana darbotos (lai izveidotu savienojumu starp divām pārlūkprogrammām), no divām pārlūkprogrammām, kas atbalsta webrtc, ir jāsazinās ar signāla serveri, kas darbojas vietnē node.js, izmantojot IP adresi.

Rezultātā atvērsies komunikācijas aplikācijas (videočata) klienta daļas interfeiss ar pieprasījumu pēc atļaujas piekļūt kamerai un mikrofonam (4. att.).



Rīsi. četri

Pēc noklikšķināšanas uz pogas "Atļaut", kamera un mikrofons ir savienoti multivides saziņai. Turklāt, izmantojot video tērzēšanas saskarni, varat sazināties ar teksta datiem (5. att.).



Rīsi. 5

Jāpiebilst, ka. Serveris signalizē un galvenokārt paredzēts, lai izveidotu savienojumu starp lietotāju pārlūkprogrammām. Server.js skripts, kas nodrošina WebRTC signālu, palaišanai izmanto Node.js.