WebRTC-n alapuló P2P videocsevegés. WebRTC

Az európai internetezők két részre oszlanak: az allenbachi (Németország) Közvélemény-elemző Intézet felmérése szerint a Skype, a chat- és azonnali üzenetküldő rendszerek 16,5 millió felnőtt és gyermek, 9 millió ember mindennapi életének szerves részévé váltak. esetről esetre veszik igénybe ezeket a szolgáltatásokat, és 28 millióan nem nyúlnak hozzájuk.

A helyzet változhat, hiszen immár a Firefox is be van építve valós idejű kommunikációs technológia (WebRTC), valamint maga az ügyfél is. Az audio- és videocsevegés indítása most nem nehezebb, mint egy webhely megnyitása. Az olyan szolgáltatások viszont, mint a Facebook és a Skype, külön klienst használó megoldásokra és fiók létrehozására támaszkodnak.

A WebRTC nem csak egyszerűen használható. Ez a módszer lehetővé teszi még a beállítást is közvetlen kapcsolat két böngésző között. Így a hang- és képadatok nem haladnak át olyan szerveren, ahol torlódás léphet fel, vagy ahol az adminisztrátor nem különösebben érzékeny a magánéletre vagy az adatvédelemre. Közvetlen kapcsolat esetén a WebRTC nem igényel regisztrációt vagy fiókot semmilyen szolgáltatáshoz.

Beszélgetés indításához csak a linket kell követnie. A kommunikáció privát marad mert az adatfolyam titkosított. A böngészőn keresztüli valós idejű kommunikációban a Google már 2011-ben kezdett aktívan részt venni, amikor közzétette a WebRTC megvalósításának forráskódját.

Röviddel ezután a Chrome és a Firefox megkapta a saját WebRTC motorját. Jelenleg mobilverzióik ezzel a technológiával és az alkalmazások által használt Android 5.0-val telepített WebView 3.6 motorral is fel vannak szerelve.

A valós idejű kommunikációhoz a megfelelő JavaScript felületeket kell megvalósítani a webes megjelenítőben. A GetUserMedia segítségével a szoftver lehetővé teszi a rögzítést hang- és videoforrásokról, azaz webkameráról és mikrofonról. Az RTCPeerConnection felelős a kapcsolat létrehozásáért, valamint magáért a kommunikációért.

A böngésző integrációjával párhuzamosan a World Wide Web Consortium (W3C) munkacsoportja a WebRTC szabványosítási folyamatát szorgalmazza. 2015-ben kell elkészülnie.

A WebRTC megelégszik kevéssel

A WebRTC szolgáltatás használata nem igényel sok erőforrást, mivel a szerver csak a haverokat köti össze. A kapcsolat létrehozása sem különösebben nehéz. Először a böngésző jelzi a WebRTC szervernek, hogy hívás kezdeményezését tervezi. HTTPS hivatkozást kap a szervertől - a kapcsolat titkosított. A felhasználó elküldi ezt a linket beszélgetőpartnerének. A böngésző ezután engedélyt kér a felhasználótól a webkamera és a mikrofon eléréséhez.

A másik féllel való közvetlen streaming kapcsolat létrehozásához a böngésző megkapja IP-címét és konfigurációs adatait a WebRTC szolgáltatástól. A haver webböngészője ugyanezt teszi.

Annak érdekében, hogy a streaming kapcsolat zavartalanul és jó minőségben működjön, három motor dolgozik a böngészőben. Közülük kettő optimalizálja és tömöríti az audio- és videoadatokat, a harmadik pedig ezek szállításáért felel. keresztül küldi az adatokat SRTP protokoll(Secure Real-time Transport Protocol), amely valós idejű titkosított adatfolyamot tesz lehetővé.

Ha a közvetlen kapcsolat meghiúsul, a WebRTC másik elérési utat keres. Ez például akkor fordul elő, ha a hálózati beállítások miatt a STUN szerver nem tudja jelenteni az IP-címet. A WebRTC szabvány előírja, hogy ebben az esetben a beszélgetés megtörténik, de közben a TURN szerver (Traversal Using Relays around NAT) bevonásával. Tehát a netscan.co webhelyen ellenőrizheti, hogy a WebRTC implementálva van-e a számítógépén és a webhozzáféréssel.

Hogyan jön létre a kapcsolat

Először regisztrálnia kell egy beszélgetést (1). A WebRTC szolgáltatás egy hivatkozást biztosít, amelyet el kell küldeni a beszélgetőpartnernek. A böngésző a STUN-szerver segítségével megkeresi saját IP-címét (2), elküldi a szolgáltatásnak, és megkapja a partner IP-jét a közvetlen kapcsolat létrehozásához (3). Ha a STUN sikertelen, a beszélgetést a TURN szerver (4) segítségével irányítja át.

A WebRTC technológiát használó kommunikáció a böngészőben JavaScript kóddal indul. Ezt követően három motor felel a kommunikációért: a hang- és videómotorok a webkamerából és a mikrofonból gyűjtik a multimédiás adatokat, a szállítómotor pedig egyesíti az információkat, és a Secure Real-time Protocol (SRTP) segítségével titkosított formában küldi el a streamet.

Mely böngészők működnek a WebRTC-vel

A Chrome és a Firefox WebRTC motorral van felszerelve, amely olyan szolgáltatásokat használ, mint a talky.io. A Mozilla böngésző közvetlenül képes együttműködni saját kliensével.

A Google és a Mozilla tovább fejleszti a valós idejű kommunikáció ötletét: a Chrome több résztvevős WebRTC-konferenciát tud rendezni, a Firefox új Hello-kliensét pedig a Telefonica távközlési óriás leányvállalata fejleszti. Az Apple egyelőre a pálya szélén marad, a WebRTC-re még nem kell számítani a Safariban. A Safarihoz azonban rengeteg alternatív iOS-alkalmazás és -bővítmény létezik.

A Microsoft egy kicsit más irányt követ. A versenyképes Skype szolgáltatás tulajdonosaként ez a cég nem fog ilyen könnyen megadni magát a WebRTC előtt. Ehelyett a Microsoft az ORTC (Object Real-Time Communications) nevű technológiát fejleszti az Internet Explorer számára.

A WebRTC-től való eltérések, mint például a szerverrel való kapcsolatfelvételhez szükséges különböző kodekek és protokollok, csekélyek, és idővel valószínűleg kiegészítik a WebRTC szabványt, amely magában foglalja ezeket a különbségeket. Így – szokás szerint – csak az Apple marad le.

Fénykép: gyártó vállalatok; goodluz/Photolia.com

WebRTC(Web Real-Time Communications) egy olyan technológia, amely lehetővé teszi a webalkalmazások és webhelyek számára, hogy rögzítsék és szelektíven továbbítsák a hang- és/vagy videó médiafolyamokat, valamint tetszőleges adatokat cseréljenek a böngészők között, közvetítők nélkül. A WebRTC technológia által tartalmazott szabványkészlet lehetővé teszi az adatcserét és a peer-to-peer telekonferenciát anélkül, hogy a felhasználónak beépülő modulokat vagy bármilyen más harmadik féltől származó szoftvert kellene telepítenie.

A WebRTC több egymással összefüggő programozási felületből (API) és protokollból áll, amelyek együtt működnek. Az itt található dokumentáció segít megérteni a WebRTC alapjait, az adat- és médiakapcsolat beállítását és használatát, és még sok mást.

Kompatibilitás

Mivel a WebRTC megvalósítása folyamatban van, és minden böngésző rendelkezik WebRTC funkcióval, erősen ajánlott a Google Adapter.js polifill könyvtárának használata, mielőtt elkezdené dolgozni a kódon.

Az Adapter.js ékeket és polifilleket használ a WebRTC-megvalósítások közötti különbségek zökkenőmentes áthidalására az azt támogató környezetek között. Az Adapter.js kezeli a szállítói előtagokat és más tulajdonságelnevezési különbségeket is, megkönnyítve a WebRTC fejlesztési folyamatot a legkonzisztensebb eredménnyel. A könyvtár NPM-csomagként is elérhető.

Az Adapter.js könyvtár további felfedezéséhez lásd: .

A WebRTC fogalmai és használata

A WebRTC sokoldalú, és a -val együtt hatékony multimédiás képességeket biztosít a weben, beleértve az audio- és videokonferenciák támogatását, a fájlmegosztást, a képernyőrögzítést, az identitáskezelést és a régi telefonrendszerekkel való együttműködést, beleértve a DTMF-hang tárcsázás támogatását. A csomópontok közötti kapcsolatok speciális illesztőprogramok vagy beépülő modulok használata, és gyakran köztes szolgáltatások nélkül is létrehozhatók.

A két csomópont közötti kapcsolat az RTCPeerConnection interfész objektumaként jelenik meg. Miután a kapcsolat létrejött és megnyitott egy RTCPeerConnection objektummal, médiafolyamok (MediaStream s) és/vagy adatcsatornák (RTCDataChannel s) adhatók hozzá a kapcsolathoz.

A médiafolyamok tetszőleges számú médiainformáció-sávból (sávból) állhatnak. Ezek a sávok, amelyeket a MediaStreamTrack felület objektumai képviselnek, egy vagy több médiatípust tartalmazhatnak, beleértve a hangot, videót, szöveget (például feliratokat vagy fejezetcímeket). A legtöbb adatfolyam legalább egy hangsávból (egy hangsávból) vagy videosávból áll, és adatfolyamként (valós idejű média) küldhető és fogadható, vagy fájlba menthető.

Ezenkívül a két csomópont közötti kapcsolatot tetszőleges adatok cseréjére használhatja az RTCDataChannel interfész objektum segítségével, amely szolgáltatási információk, készletadatok, játékstátusz csomagok, fájlok vagy privát adatátviteli csatornák átvitelére használható.

további részletek és hivatkozások szükségesek a vonatkozó útmutatókhoz és oktatóanyagokhoz

WebRTC interfészek

Tekintettel arra, hogy a WebRTC olyan felületeket biztosít, amelyek együtt működnek a különböző feladatok végrehajtásához, ezeket kategóriákra osztottuk. Tekintse meg az oldalsáv betűrendes tárgymutatóját a gyors navigációhoz.

Kapcsolat beállítása és kezelése

Ezek az interfészek a WebRTC kapcsolatok beállítására, megnyitására és kezelésére szolgálnak. Peer-to-peer médiakapcsolatokat, adatcsatornákat és interfészeket jelentenek, amelyek az egyes csomópontok képességeivel kapcsolatos információk cseréjére szolgálnak, hogy a kétirányú multimédiás kapcsolat létrehozásakor a legjobb konfigurációt válasszák ki.

RTCPeerConnection WebRTC kapcsolatot jelöl a helyi számítógép és egy távoli gazdagép között. Két csomópont közötti sikeres adatátvitel kezelésére szolgál. RTCSessionDescription A munkamenet paramétereit jelöli. Minden RTCSessionDescription típusleírásokat tartalmaz, amelyek jelzik, hogy a tárgyalási folyamat mely részét (ajánlatot/választ) írják le, valamint egy SDP-munkamenet-leírót. RTCIceCandidate Az RTCPeerConnection kapcsolat létrehozásához szükséges internetkapcsolat-létrehozási (ICE) kiszolgáló jelöltet jelöli. RTCIceTransport Az Internet Connectivity Facility (ICE) információi. RTCPeerConnectionIceEvent Az ICE jelölteken, általában az RTCPeerConnectionen előforduló eseményeket jelöli. Ennek az eseményobjektumnak egy típusa van átadva: icecandidate . RTCRtpSender Szabályozza az adatok kódolását és továbbítását egy MediaStreamTrack típusú objektumon keresztül egy RTCPeerConnection típusú objektum esetében. RTCRtpReceiver Vezérli az adatok fogadását és dekódolását egy MediaStreamTrack típusú objektumon keresztül egy RTCPeerConnection típusú objektum esetében. RTCTrackEvent Azt jelzi, hogy egy új MediaStreamTrack típusú bejövő objektum jött létre, és egy RTCRtpReceiver típusú objektum került hozzáadásra az RTCPeerConnection objektumhoz. RTCCertificate Az RTCPeerConnection objektum által használt tanúsítványt jelöli. RTCDataChannel Kétirányú adatcsatornát jelöl két kapcsolati csomópont között. RTCDataChannelEvent Olyan eseményeket jelöl, amelyek akkor jelennek meg, amikor egy RTCDataChannel típusú objektumot csatolnak egy RTCPeerConnection datachannel típusú objektumhoz. RTCDTMFSender Vezérli a kettős hangú többfrekvenciás (DTMF) jelzések kódolását és továbbítását egy RTCPeerConnection típusú objektumhoz. RTCDTMFToneChangeEvent Bejövő DTMF-hangváltozási eseményt jelez. Ez az esemény nem buborékol (hacsak nincs másképp megadva), és nem törölhető (hacsak másképp nincs megadva). RTCStatsReport Aszinkron módon jelenti a MediaStreamTrack típusú átadott objektum állapotát. RTCIdentityProviderRegistrar Identitásszolgáltatót (IDP) regisztrál. RTCIdentityProvider Lehetővé teszi a böngésző számára, hogy személyazonosság-deklaráció létrehozását vagy érvényesítését kérje. RTCIdentityAssertion Az aktuális kapcsolat távoli állomásazonosítóját jelöli. Ha a csomópont még nincs telepítve és megerősítve, az interfész hivatkozása null értéket ad vissza. A telepítés után nem változik. RTCIdentityEvent Egy azonosító eseményobjektum identitásszolgáltató (idP) deklarációját képviseli. RTCPeerConnection típusú objektum eseménye. Az egyik típus átadásra kerül ennek az identitáseredmény-eseménynek. RTCIdentityErrorEvent Az identitásszolgáltatóhoz (idP) társított hibaesemény objektumot jelöl. RTCPeerConnection típusú objektum eseménye. Kétféle hiba kerül átadásra ehhez az eseményhez: idpassertionerror és idpvalidationerror .

Útmutatók

A WebRTC architektúra áttekintése A fejlesztők által a WebRTC létrehozásához és használatához használt API alatt hálózati protokollok és csatlakozási szabványok találhatók. Ez az áttekintés ezeknek a szabványoknak a bemutatója. A WebRTC lehetővé teszi csomópontok közötti kapcsolat beállítását tetszőleges adatok, hang-, videofolyamok vagy ezek bármely kombinációjának átviteléhez a böngészőben. Ebben a cikkben egy pillantást vetünk a WebRTC-munkamenetek életére, a kapcsolat létrehozásától kezdve egészen a befejezéséig, amikor már nincs rá szükség. WebRTC áttekintése A WebRTC API több egymással összefüggő API-ból és protokollból áll, amelyek együttműködve támogatják az adat- és médiafolyamok cseréjét két vagy több csomópont között. Ez a cikk rövid áttekintést nyújt az egyes API-król és azok céljáról. A WebRTC alapjai Ez a cikk végigvezeti Önt egy több böngészőre kiterjedő RTC alkalmazás létrehozásán. A cikk végére egy működő adat- és médiacsatornával kell rendelkeznie, amely pontról pontra fut. WebRTC-protokollok Ez a cikk azokat a protokollokat mutatja be, amelyekhez a WebRTC API-t létrehozták. Ez az útmutató leírja, hogyan használhatja a csomópontok közötti kapcsolatot és a csatolt

Napjainkban a WebRTC a "forró" technológia az audio- és videostreamelésre a böngészőkben. A konzervatív technológiák, mint például a HTTP Streaming és a Flash, alkalmasabbak a rögzített tartalmak (video on demand) terjesztésére, és lényegesen alulmúlják a WebRTC-t a valós idejű és online adások tekintetében, pl. ahol minimális videó késleltetés szükséges, így a nézők „élőben” láthatják, mi történik.

A kiváló minőségű valós idejű kommunikáció lehetősége magából a WebRTC architektúrából adódik, ahol az UDP protokollt használják a videó folyamok továbbítására, amely a minimális késleltetésű videó továbbítás standard alapja, és széles körben használatos a valós idejű kommunikációs rendszerekben.

A kommunikációs késleltetés fontos az élő streaming rendszerekben, webináriumokban és más alkalmazásokban, ahol interaktív kommunikációra van szükség a videó forrásával, a végfelhasználókkal és a megoldással.

Egy másik jó ok a WebRTC kipróbálására határozottan trend. Ma már minden Android Chrome böngésző támogatja ezt a technológiát, amely garantálja, hogy több millió eszköz áll készen az adás megtekintésére további szoftverek és konfigurációk telepítése nélkül.

A WebRTC technológia működésének tesztelésére és egy egyszerű online adás indítására a Flashphoner WebRTC Media & Broadcasting Server szerver szoftvert használtuk. A funkciók deklarálják a WebRTC adatfolyamok egy-a többhez módban történő sugárzásának lehetőségét, valamint az IP-kamerák és a videó megfigyelőrendszerek támogatását az RTSP protokollon keresztül; Ebben az áttekintésben a web-web adásokra és azok funkcióira fogunk összpontosítani.

WebRTC Media & Broadcasting Server telepítése

Mivel a Windows rendszerhez nem volt szerververzió, és nem akartam olyan virtuális gépet telepíteni, mint a VMWare + Linux, nem tudtam tesztelni az online adásokat az otthoni Windows számítógépemen. Az időmegtakarítás érdekében úgy döntöttünk, hogy példát veszünk a felhőalapú tárhelyszolgáltatásról, például:

Ez egy Centos x86_64 6.5-ös verzió volt, minden előre telepített szoftver nélkül egy amszterdami adatközpontban. Így csak egy szerver és ssh hozzáférés áll rendelkezésünkre. Azok számára, akik ismerik a Linux konzolparancsait, a WebRTC szerver telepítése egyszerűnek és fájdalommentesnek ígérkezik. Szóval mit csináltunk:

1. Archívum letöltése:

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

2. Kicsomagolás:

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

3. Telepítés:

$cd FlashphonerWebCallServer

A telepítés során adja meg a szerver IP-címét: XXX.XXX.XXX.XXX

4. Licenc aktiválása:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. WCS szerver indítása:

$service webcallserver start

6. Napló ellenőrzése:

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

7. Ellenőrizze, hogy két folyamat működik-e:

$ps aux | grep Flashphoner

A telepítési folyamat befejeződött.

WebRTC élő közvetítések tesztelése

A közvetítések tesztelése egyszerű dolognak bizonyult. A szerveren kívül van egy webes kliens is, amely tucatnyi Javascript, HTML és CSS fájlból áll, és a telepítés során mi telepítettük a /var/www/html mappába. Csak annyit kellett tenni, hogy a flashphoner.xml konfigurációba be kellett írni a szerver IP-címét, hogy a webkliens HTML5 Websocketeken keresztül tudjon kapcsolatot létesíteni a szerverrel. Ismertesse a tesztelési folyamatot.

1. Nyissa meg a tesztkliens index.html oldalát a Chrome böngészőben:

2. A sugárzás elindításához kattintson a képernyő közepén található "Start" gombra.
Mielőtt ezt megtenné, meg kell győződnie arról, hogy a webkamera csatlakoztatva van, és használatra kész. A webkamerával szemben nincs különösebb követelmény, például szabványos beépített laptop kamerát használtunk 1280 × 800 felbontással.

A Chrome böngésző minden bizonnyal hozzáférést fog kérni a kamerához és a mikrofonhoz, hogy a felhasználó megértse, hogy videója elküldésre kerül az internetes szerverre, és lehetővé teszi számára ezt.

3. Az interfész a videofolyam sikeres sugárzását jelenti a kamerából a WebRTC szerverre. A jobb felső sarokban a jelző jelzi, hogy a stream a szerverre megy, az alsó sarokban pedig egy "Stop" gomb található a videó küldésének leállításához.

Vessen egy pillantást az alábbi linkre. Egyedi azonosítót tartalmaz ehhez az adatfolyamhoz, így bárki csatlakozhat a nézethez. Csak nyissa meg ezt a hivatkozást egy böngészőben. A vágólapra másoláshoz kattintson a "Másolás" gombra.

A valós alkalmazásokban, mint a webináriumok, előadások, online videoközvetítések vagy interaktív tévézés, a fejlesztőknek meg kell valósítaniuk ennek az azonosítónak a szétosztását a nézők bizonyos csoportjai számára, hogy azok csatlakozhassanak a kívánt streamekhez, de ez az alkalmazás logikája. WebRTC média- és műsorszóró szerver nem érinti, csak a videó terjesztésével foglalkozik.

5. A kapcsolat létrejön, és a néző látja az adatfolyamot a képernyőn. Mostantól elküldheti a linket valaki másnak, leállíthatja a stream lejátszást vagy engedélyezheti a teljes képernyős módot a jobb alsó sarokban található vezérlők segítségével.

WebRTC szerver tesztelési eredmények online adásokhoz

A tesztek során a várakozási idő tökéletesnek tűnt. Az adatközpontba érkező ping körülbelül 100 ezredmásodperc volt, és a késés nem volt látható a szemnek. Innentől kezdve feltételezhetjük, hogy a valódi késleltetés ugyanaz, mint 100 plusz-mínusz néhány tíz milliszekundum a pufferelési időre. A Flash videóhoz képest ezekben a tesztekben a Flash nem teljesít olyan jól, mint a WebRTC. Tehát, ha egy hasonló hálózaton mozgatja a kezét, akkor a mozgás a képernyőn csak egy/két másodperc múlva látható.

A minőséggel kapcsolatban megjegyezzük, hogy néha meg lehet különböztetni a kockákat a mozgásokon. Ez összhangban van a VP8 kodek természetével, és fő célja a valós idejű videokommunikáció biztosítása elfogadható minőségben és kommunikációs késések nélkül.

A szerver telepítése és konfigurálása meglehetősen egyszerű, nem igényel komolyabb készséget a futtatásához, kivéve a Linux tudását olyan haladó szinten, aki ssh-n keresztül tud parancsokat végrehajtani a konzolról, és szövegszerkesztőt is tud használni. Ennek eredményeként sikerült beállítani egy-a-többhöz online adást a böngészők között. További nézők csatlakoztatása sem okozott problémát.

A webináriumok és online adások közvetítésének minősége meglehetősen elfogadhatónak bizonyult. Csak a videó felbontása okozott néhány kérdést. A kamera támogatja az 1280x800-as felbontást, de a tesztképen a felbontás nagyon hasonló a 640x480-hoz. Úgy tűnik, ezt a kérdést tisztázni kell a fejlesztőkkel.

Videó a webkameráról történő tesztelésről
WebRTC szerveren keresztül

Ennek a cikknek az a célja, hogy megismerkedjen annak felépítésével és működési elvével egy peer-to-peer videocsevegés (p2p videocsevegés) demómintáján. Erre a célra a többfelhasználós peer-to-peer videocsevegés demót használjuk a webrtc.io-demo. Letölthető a következő linkről: https://github.com/webRTC/webrtc.io-demo/tree/master/site.

Meg kell jegyezni, hogy a GitHub egy webprojektek közös fejlesztésére szolgáló webhely vagy webszolgáltatás. Ezen a fejlesztők közzétehetik fejlesztéseik kódjait, megvitathatják azokat és kommunikálhatnak egymással. Ezenkívül néhány nagy IT-cég ezen az oldalon tárolja hivatalos adattárait. A szolgáltatás ingyenes a nyílt forráskódú projektek számára. A GitHub nyílt forráskódú könyvtárak tárháza.

Tehát a GitHubról letöltött egy peer-to-peer videocsevegés demómintáját egy személyi számítógép C-meghajtójára helyezzük a „webrtc_demo” alkalmazásunk számára létrehozott könyvtárba.


Rizs. egy

Amint a szerkezetből (1. ábra) következik, a peer-to-peer videocsevegés a JavaScript programozási nyelven implementált kliens script.js és szerver server.js szkriptekből áll. Szkript (könyvtár) webrtc.io.js (CLIENT) - biztosítja a böngészők közötti valós idejű kommunikáció megszervezését egy peer-to-peer séma szerint: "kliens-ügyfél", valamint webrtc.io.js (CLIENT) és webrtc .io.js (SERVER), a WebSocket protokoll használatával duplex kommunikációt biztosítanak a böngésző és a webszerver között a "kliens-szerver" architektúra használatával.

A webrtc.io.js (SERVER) parancsfájl a webrtc.io könyvtárban található, és a node_modules\webrtc.io\lib könyvtárban található. Az index.html videocsevegési felület HTML5-ben és CSS3-ban van megvalósítva. A webrtc_demo alkalmazásfájlok tartalma megtekinthető valamelyik html szerkesztővel, például "Notepad++".

Ellenőrizzük a videocsevegés elvét a számítógépes fájlrendszerben. A szerver (server.js) PC-n történő futtatásához telepítenie kell a node.js futási környezetet. A Node.js lehetővé teszi JavaScript kód futtatását a böngészőn kívül. A node.js fájl letölthető a következő linkről: http://nodejs.org/ (verzió 0.10.13, 2013. 07. 15.). A node.org webhely főoldalán kattintson a letöltés gombra, és lépjen a http://nodejs.org/download/ oldalra. Windows-felhasználók számára először töltse le a win.installer (.msi) fájlt, majd futtassa a win.installer (.msi) programot a számítógépen, és telepítse a nodejs-t és az „npm csomagkezelőt” a Program Files könyvtárba.




Rizs. 2

Így a node.js egy JavaScript fejlesztői és végrehajtási környezetből, valamint egy sor belső modulból áll, amelyek az npm csomagkezelővel vagy csomagkezelővel telepíthetők.

Modulok telepítéséhez futtassa a következő parancsot a parancssorban az alkalmazáskönyvtárból (például "webrtc_demo"): npm telepítési modul_neve. A modulok telepítése során az npm manager létrehoz egy node_modules mappát abban a könyvtárban, ahonnan a telepítés történt. Futás közben a nodejs automatikusan tartalmazza a modulokat a node_modules könyvtárból.

Tehát a node.js telepítése után nyissa meg a parancssort, és frissítse az expressz modult a webrtc_demo könyvtár node_modules mappájában az npm csomagkezelő segítségével:

C:\webrtc_demo>npm install express

Az expressz modul a node.js vagy webalkalmazás-fejlesztő platform webes keretrendszere. Az expressz globális eléréséhez a következőképpen telepítheti: npm install -g express.

Ezután frissítjük a webrtc.io modult:

C:\webrtc_demo>npm telepítse a webrtc.io-t

Ezután a parancssorban elindítjuk a szervert: server.js:

C:\webrtc_demo>nodeserver.js


Rizs. 3

Minden, a szerver sikeresen működik (3. ábra). Most egy webböngészővel kapcsolatba léphet a szerverrel ip-címen, és letöltheti az index.html weboldalt, amelyről a webböngésző kibontja a kliens szkript kódját - script.js és webrtc.io.js szkriptkód, és kivégezni őket. Ahhoz, hogy a peer-to-peer videocsevegés működjön (a kapcsolat létrehozásához két böngésző között), két webrtc-t támogató böngészőnek fel kell vennie a kapcsolatot a node.js-n futó jelkiszolgálóval ip-címen.

Ennek eredményeként megnyílik a kommunikációs alkalmazás (video chat) kliens részének felülete a kamera és a mikrofon hozzáférési engedélykérésével (4. ábra).



Rizs. négy

Az "Engedélyezés" gombra kattintás után a kamera és a mikrofon csatlakoztatva van a multimédiás kommunikációhoz. Emellett a videocsevegési felületen keresztül szöveges adatokkal is kommunikálhatunk (5. ábra).



Rizs. 5

Megjegyzendő . A szerver jelzés, és főként arra szolgál, hogy kapcsolatot létesítsen a felhasználók böngészői között. A WebRTC jelzést biztosító server.js szkript Node.js-t használ a futtatáshoz.