Webrtc bilan veb-dasturlar. WebRTC texnologiyasi: brauzerda audio va video suhbat. WebRTC wiki-ni tushunish

Salom do'stlar, siz allaqachon bilganingizdek, biz sizni muntazam ravishda yangi texnologiyalar bilan tanishtiramiz, bugun men Google tomonidan ishlab chiqilgan WebRTC texnologiyasini taqdim etaman, bu plagin veb ekanligini unutmasdan, brauzerda, video va audioda uzilishlarsiz gaplashish imkonini beradi. sayt. Video va audio to'g'ridan-to'g'ri koristuvachalar o'rtasida to'g'ridan-to'g'ri brauzerdan yuklab olinadi.
WebRTC texnologiyasi Google Chrome va har qanday operatsion tizimda Mozilla Firefox brauzerlarida qo'llab-quvvatlanadi, Opera ham tez orada chiqadi.
WebRTC nima?
WebRTC — Web Real Time Communication soʻzining qisqartmasi boʻlib, ushbu texnologiya audio va video chatlarni boshqa plaginlar, boshqalar uchun Internetdagi dasturiy taʼminot xizmatlarini talab qilmasdan brauzerda vositachisiz oʻynash imkonini beradi. Ulanish to'g'ridan-to'g'ri brauzerdan brauzerga ulanadi.
Ba'zi xizmatlar (Skype, Yahoo Messenger, Apple FaceTime, Google Hago va boshqalar) serverni band qiladi, bu esa trafikni boshlashga yordam beradi. G'alaba xizmatlari, biz ro'yxatdan o'tishimiz va mijozlar va kontaktlar ro'yxatini o'rnatishimiz kerak.
WebRTC bilan bizga shafoatdan oldin ulangan serverlar, dasturlar yoki serverlar kerak emas.
WebRTC afzalliklari:
1. Ba'zi resurslar va batareyani tejaydigan dasturlar endi yo'q.
2. Chatlarda ko'proq maxfiylik mavjud (schodo).
3. Qanday qilib bog'lanishni mahalliy ulanishlar uchun Flos USA serverlarida emas, balki mahalliy darajada amalga oshirish mumkin.
4. G‘oliblikning soddaligi, ravshanligi.
5. Keyingi rivojlanish imkoniyati va boshqa yo'nalishlarda.
6. Bog'lanish barqaror va bir xil erlarda yotmaydi, chunki u mintaqada ba'zan beqaror.
Men yordamchi bilan demoga ovoz berdim, uni Google odamlari ishlab chiqdi, demoni tugatish oson, ko'proq kengaytirish imkoniyatlari va ko'proq aqllilar qo'shimchalardan birini yutib olishlari mumkin, masalan WebRTC-ni qo'llab-quvvatlash, Viktorian bilan bu osonroq. Nezabara tinch do'st va WebRTC dasturlari haqida.
WebRTC demosini qanday buzish mumkin?
Yoki shunchaki quyidagi xabarni bosing, chat avtomatik ravishda yaratiladi. meni xonaga qo'ng'iroq qiling, siz aloqada bo'lishni istagan do'stingiz / qiz do'stingiz uchun aybdorsiz.
Do'stingiz / qiz do'stingiz va sizniki, lekin siz faqat Mozilla Firefox yoki Google Chrome-ning qolgan versiyalarida aybdorsiz.

Demo WebRTC(Kirish audio-video chat)

Hurmat:
Namoyish ancha barqaror emas, faqat namoyish qilish uchun. Vínni chekka davrning cho'zilishi bilan mag'lub etish mumkin, uning cho'zilishi bilan kichik kechirimlar bir kun yutib olishlari mumkin.
Agar ulanishda muammolar mavjud bo'lsa, boshqa chat yaratishga harakat qiling.

Bugungi kunda WebRTC brauzerlarda audio va videolarni oqimlash uchun issiq texnologiyadir. HTTP Streaming va Flash kabi konservativ texnologiyalar yozib olingan kontentni (talab bo'yicha video) tarqatish uchun ko'proq mos keladi va WebRTC real vaqtda va onlayn eshittirishlardan sezilarli darajada past, ya'ni. u yerda tomoshabinlarga jonli efirda bo'lganlarni tomosha qilish imkonini beruvchi minimal video blokirovkasi kerak bo'ladi.

Haqiqiy vaqtda aloqa qilish imkoniyati WebRTC arxitekturasining o'ziga o'xshaydi, u video oqimlarini tashish uchun UDP protokolidan foydalanadi, bu videoni minimal tartibsizlik bilan uzatish uchun standart asos bo'lib, real vaqt rejimida aloqa tizimlarida keng qo'llaniladi.

Aloqa blokirovkasi onlayn eshittirish tizimlarida muhim ahamiyatga ega, veb-seminarlar va boshqa qo'shimchalar, eski videodan zarur bo'lmagan interaktiv aloqa, end-to-end coristuvachiv va bu talab qilinadi.

WebRTC-ni sinab ko'rishning yana bir sababi - bu aql bovar qilmaydigan tendentsiya. Bugungi kunda Android Chrome brauzeri ushbu texnologiyani qo'llab-quvvatlaydi, bu esa millionlab qo'shimchalarni kafolatlaydi, ular hech qanday qo'shimcha dasturiy ta'minot va konfiguratsiyani o'rnatmasdan translyatsiya qilishga tayyor.

WebRTC texnologiyasini bekor qilish va unda oddiy onlayn translyatsiyani ishga tushirish uchun biz Flashphoner WebRTC Media & Broadcasting Server server dasturidan foydalandik. Funktsiyalar WebRTC oqimlarini "birdan ko'p" rejimida translyatsiya qilish imkoniyatini, shuningdek, RTSP protokoli orqali IP kameralar va video ogohlantirish tizimlarini qo'llab-quvvatlashni da'vo qiladi; Biz ushbu xususiyatlarning veb-versiyasini ko'rib chiqamiz.

O'rnatilgan WebRTC Media va Broadcasting Server

Windows uchun server versiyasining versiyasi paydo bo'lmadi va VMWare + Linux kabi virtual mashinani o'rnatish mumkin emas edi, uy Windows kompyuterida onlayn eshittirishga qarshi norozilik bildirish mumkin emas edi. Bir soatni tejash uchun biz bunday kshtalt uchun ma'yus hostingdan misol olishga qaror qildik:

Centos x86_64 versiyasi 6.5 Amsterdam ma'lumotlar markazida oldindan o'rnatilgan proshivkasiz. Ushbu darajada biz hamma narsani, server va ssh-ni yangisiga kirishni tartibga soldik. Linux konsoli buyruqlari bilan tanish bo'lganlar uchun WebRTC serverini o'rnatish oson va og'riqsiz bo'lishi kerak. Otzhe, scho mi zrobili:

1. Arxivlarni olish:

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

2. Paketdan chiqarish:

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

3. O'rnatish:

$cd FlashphonerWebCallServer

O'rnatish soati uchun serverning IP manzilini kiriting: XXX.XXX.XXX.XXX

4. Litsenziyani faollashtirish:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. WCS serverini ishga tushiring:

$service webcallserver ishga tushirildi

6. Jurnalni tekshiring:

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

7. Joyda ikkita jarayon borligini tekshiring:

$ps aux | grep Flashphoner

Oʻrnatish jarayoni tugallandi.

Onlayn eshittirishlarni WebRTC testi

Efirlarni sinovdan o'tkazish juda oddiy bo'lib tuyuldi. Krim serveri veb-mijoz bo'lib, u o'nlab Javascript, HTML va CSS fayllari va biz o'rnatish bosqichida /var/www/html jildiga joylashtirgan fayllardan iborat. Siz qilishingiz kerak bo'lgan yagona narsa - veb-mijoz HTML5 Websockets serveri bilan bir zumda ulanish o'rnatishi uchun flashphoner.xml konfiguratsiyasiga serverning IP-manzilini kiritish. Keling, sinov jarayonini tasvirlab beraylik.

1. Chrome brauzerida test mijozi index.html tomonini ko'rsating:

2. Efirni boshlash uchun ekranning o'rtasida joylashgan "Start" tugmasini bosishingiz kerak.
Bundan oldin, aslida, veb-kamera ulangan va ishlashga tayyor ekanligini qayta ko'rib chiqish kerak. Biz, xususan, veb-kameraga kira olmadik, biz, masalan, 1280x800 alohida bino bilan noutbukda o'rnatilgan standart kamerani mag'lub qildik.

Chrome brauzeri videoning Internet-serverga qanday yuklanishini bilish va uni yuklashga ruxsat berish uchun darhol kamera va mikrofonga kirishni so'raydi.

3. Video oqimini kameradan WebRTC serveriga muvaffaqiyatli translyatsiya qilish uchun interfeys. Yuqori o'ng burchakda u serverga ketayotganligini ko'rsatadigan indikator mavjud;

Maydonning kuchiga pastdan hurmat qiling. Von ushbu mavzuning noyob identifikatoridan qasos olish uchun, bu qayta ko'rishdan oldin kelishi mumkin. Brauzerdan Dosit vodkriti tse xabari. Uni vaqtinchalik xotiraga nusxalash uchun “Nusxalash” tugmasini bosish kifoya.

Kshtalt veb-seminarlar, ma'ruzalar, onlayn video eshittirishlar yoki interaktiv televideniega haqiqiy qo'shimchalar sifatida, chakana sotuvchilar ushbu identifikatorni tomoshabinlarning qo'shiq guruhlariga tarqatishni amalga oshirishlari kerak, shunda hid talab qilinadigan oqimlarga ulanishi mumkin, balki dastur mantig'i ham. WebRTC Media va eshittirish serveri vv boshlamaydi, lekin faqat videolarni tarqatish bilan shug'ullanadi.

5. Z'ednannya o'sha potikni ekranga o'rnatdi. Endi siz boshqa birovga xabar yuborishingiz, oqimni to'xtatishingiz yoki to'liq ekran rejimini yoqishingiz mumkin, o'ng pastki codda boshqaruv bilan qobiq.

Onlayn translyatsiyalar uchun WebRTC server test natijalari

Sinov soati ostida zatrimka umidsiz ko'rinardi. Ma'lumotlar markaziga ping 100 millisekundga yaqin edi va blokirovka ko'rinmadi. Haqiqiy kechikish buferlash soatiga 100 plyus yoki minus bir necha o'nlab millisekundlar deb taxmin qilishingiz mumkin. Flash videolar bilan qanday kurashish mumkin: shunga o'xshash testlarda Flash WebRTC kabi mehribon emas. Shunday qilib, xuddi o'z qo'lingiz bilan xuddi shunday panjara ustidagidek, uni ekranda faqat bir/ikki soniyadan keyin silkitib qo'yishingiz mumkin.

Gilamlarda kublarni ajratish mumkinligi muhimdir. U VP8 kodekining tabiatiga amal qiladi va uning asosiy vazifasi real vaqt rejimida yoqimli ravshanlik va aloqada uzilishlarsiz video qo'ng'iroqlarni ta'minlashdir.

Serverni sozlash va sozlash oson, uni ishga tushirish uchun sizga yopishqoq koristuvach darajasida Linux haqida jiddiy bilim kerak emas, shuning uchun konsoldan ssh orqali buyruqlarni kiritishingiz va matn muharriridan foydalanishingiz mumkin. Natijada, biz brauzerlar o'rtasida birdan ko'p onlayn translyatsiyaga erisha oldik. Qo'shimcha kuzatuvchilarning oqimga ulanishi ham muammo tug'dirmadi.

Eshittirish sifati vebinarlar va onlayn harakat uchun juda yoqimli bo'lib chiqdi. Oziq-ovqat deakonlarini chaqirgan yagona odam, - u videoni yubordi. Kamera 1280x800 o'lchamini qo'llab-quvvatlaydi, ammo sinov rasmida u hatto 640x480 ga o'xshash edi. Ehtimol, chakana sotuvchilar bilan ta'minot zanjirini tekshiring.

Veb-kameradan test translyatsiyasidan video
WebRTC serveri orqali

OpenTok, PubNub va WebRTC

WebRTC asosida aloqa xizmatlarini rivojlantirish uchun Smart platformalar OpenTok va PubNub

2016-04-08

Bugungi kunda veb-video chatlar tobora ommalashib bormoqda. Web Video Chat - bu veb-server va brauzerlar asosidagi suhbatlar, takliflar uchun veb-qo'shimcha.

Eng istiqbolli texnologiya WebRTC API hisoblanadi. WebRTC texnologiyasiga asoslangan veb-chatlar brauzerda plaginlar yoki kengaytmalarni o'rnatmasdan matn, ovoz, video va ma'lumotlar (fayllar) xavfsiz uzatilishini ta'minlaydi. WebRTC-dagi video suhbatning asosiy elementlari brauzer va aloqa serveridir.

WebRTC-ni qo'llab-quvvatlaydigan brauzer aloqa xizmatlari bilan ishlaydigan xizmat ko'rsatuvchi provayderning barcha kengaytmalari (kompyuter, smartfonlar, iPad, IP telefonlar, mobil telefonlar va boshqalar) uchun yagona interfeysga aylanadi. WebSocket, HTML5, CSS3 va JavaScript-dan WebRTC yangi avlod veb-muloqot xizmatlarini yaratish imkonini beradi. WebRTC texnologiyasi uchta JavaScript API tomonidan amalga oshiriladi.

Peer-to-peer roboti uchun WebRTC-ni qo'llab-quvvatlaydigan ikkita brauzer bo'lishi kerak, node.js da ishlaydigan signalizatsiya serverining (masalan, WebSocket serveri) ip-manzilini qidiring. Server brauzerlar o'rtasida axborot oqimlarini uzatishda ishtirok etmaydi, lekin bu brauzerlar o'rtasidagi aloqani o'rnatish uchun tayinlanishlar koristuvachiv ekanligidan dalolat beradi.

Shu munosabat bilan, WebRTC-ni qo'llab-quvvatlash barcha xostlar tomonidan qo'llab-quvvatlanmaydi, WebRTC API-ga asoslangan aloqa qo'shimchalarini amalga oshirish va Internet veb-sayti bilan integratsiya qilish uchun siz WebRTC API-larini qo'llab-quvvatlaydigan maxsus platformalardan foydalanishingiz mumkin.

API aloqa dasturlarining API ga bog'liq bo'lgan platforma (veb-servis) bilan o'zaro ishlashini ta'minlaydi va SDK SDK ga bog'liq bo'lgan platforma bilan o'zaro aloqada bo'lishi mumkin bo'lgan aloqa dasturlarini ishlab chiqishni ta'minlaydi.

Bunday platformalarni ko'rish mumkin: TokBox, PubNub, VoxImplant, Twilio kabi OpenTok, NTT Communications kabi SkyWay, Kandy.io, SightCall va boshqalar. E'tibor bering, kontakt serverini o'rnatish uchun siz ijaraga olingan virtual VPS serverida veb-muloqot dasturlari uchun Node.js-ni o'rnatishingiz yoki qorong'u platformalar (PaaS) hostingini yutib olishingiz, shuningdek, Node.js-ga asoslangan loyihalarni qo'llab-quvvatlashingiz mumkin, masalan, OpenShift /Red Hat, Heroku/Salesforce, AWS Elastic Beanstalk/Amazon ham.

Bundan tashqari, aloqa dasturini yaratish uchun siz Flashphoner Web Call Server platformasini (audio video oqimlarini brauzerga asoslangan onlayn translyatsiyasini tashkil qilish uchun tan olingan server dasturi) qo'shishingiz mumkin, chunki u HTML5 Websockets, WebRTC va Flash texnologiyalariga asoslangan va uni internetga joylashtiring - OC Linux ostidagi server yoki virtual VPS serverini ijaraga oling. Shu bilan birga, Flashphoner Amazon Web Services hostingida WebRTC serverini (Web Call Server 5) ishga tushirdi.

Unga qarab, biz WebRTC texnologiyasiga asoslangan eng mashhur noaniq aloqa veb-xizmatlarini ko'rishimiz mumkin - TokBox va PubNub kabi OpenTok.

TokBox sifatida OpenTok

OpenTok to'liq PaaS platformasi (xizmat kabi platforma), veb-sayt, mobil dasturiy ta'minot, video aloqalarni birlashtirish va bildirishnomalar almashinuvini ta'minlash uchun simli WebRTC aloqa platformasidir. OpenTok butun dunyodagi ma'lumotlarni qayta ishlash markazidan qasos olish uchun infratuzilmani baham ko'rishi mumkin.

TokBox kabi OpenTok platformasi chakana sotuvchilarga veb-qo‘shimchalar (veb-saytlar), Java/Android va IOS dasturlarida WebRTC API asosida platformalararo video suhbatlarni amalga oshirish imkoniyatini beradi.

OpenTok arxitekturasi WebRTC OpenTok kutubxonasining mijoz qismidan (masalan, OpenTok.js) tashkil topgan bo‘lib, u dasturning mijoz qismiga (veb tomoni) va asboblar to‘plamiga (OpenTok Client SDKs) video qo‘ng‘iroq qilishni ta’minlaydi. ) mijoz dasturlarini tarqatish uchun (JavaScript, Web Java/Android OS va IOS OS).

Krіm omborlar Chastain arhіtekturi OpenTok je servernі SDK (OpenTok Server SDK), SSMSC rozrobki servernoї іnfrastrukturi uchun priznachenі (upravlіnnya uchun autentifіkatsії koristuvachіv) Issiq, scho zabezpechuє dinamіchnu generatsіyu unіkalnih іdentifіkatorіv seansіv ID OpenTok (sessionId) deb teri uchun markerіv (belgi) koristuvach, shuningdek, OpenTok arxiviga ega robot. Veb-server noyob seans identifikatorini va tokenni o'tkazadi, keyin mijoz seansga ulanish uchun g'alaba qozonishi mumkin.

OpenTok server SDK-lari server tomonidagi asosiy dasturlash tillari uchun mavjud: Java, .NET, Node.js, PHP, Python, Ruby. Agar siz dasturning server qismiga uzatishdan oldin kirmaslik uchun boshqa dasturlash kerakligini bildirsangiz, TokBox OpenTok seanslarini yaratish va OpenTok arxivlari bilan ishlash uchun OpenTok REST API taqdim etadi.

Shu tarzda, Internetga ulanish uchun aloqa dasturlarini yaratish uchun ulangan WebRTC OpenTok mijozlar kutubxonasi va OpenTok Client SDK-laridan OpenTok server SDK-larini yutib olish kerak edi.


Internet universitetida joriy etilgan WebRTC video chatini yaratish uchun OpenTok platformasini yutib olish uchun birinchi navbatda TokBox.com saytida qiyshiq yozuv yaratish kerak. OpenTok-ni o'ttiz kunlik bepul yozib olish. Muxbirni ro'yxatdan o'tkazish OpenTok aloqa plaginining zarur tarqatilishi bo'lgan API kalitini (ApiKey) olishi mumkin. API kaliti OpenTok sotuvchisining ommaviy yozuvini aniqlaydi.

TokBox chakana sotuvchisi hisobidagi OpenTok sotuvchisi (https://tokbox.com/developer/guides/) yordamida siz OpenTok Client SDK-lari yordamida aloqa dasturini (video chat veb-sayti) yaratishingiz mumkin. Dasturiy ta'minot uchun OpenTok platformasini ma'qullash uchun veb-saytga OpenTok.js kutubxonasini qo'shishingiz kerak.

https://static.opentok.com/webrtc/ .../opentok.js

Dasturning ishlashi uchun zarur bo'lgan seans identifikatori (SESSIONID) va token (token) SDK serverlaridan biri (OpenTok Server SDK) bilan veb-serverda dasturiy tarzda yaratilgan.

Biroq, API kaliti (ApiKey) asosida OpenTok server SDK'larisiz dasturning sinov versiyasini yaratish uchun siz sotuvchining yordam asboblar panelidan foydalanib, seans identifikatori va sessiya identifikatori markerini qo'lda olishingiz mumkin. Mijozga seansga kirish imkonini beruvchi token kerak.

"apiKey" kaliti, sessiya identifikatori "sessionId" va "token" belgisi kabi o'zgarishlarning nomlari quyidagicha ko'rinishi mumkin:

var apiKey = "17493650";
var sessionId= "2_MX40NT...tWXR-UH4";
var token= "T1==cGFyd...2RhdGE9";

Seans ob'ekti sessiya identifikatori (SESSIONID) va token bilan yaratilganda, dastur sessiya ob'ektini ishga tushiradi.

var session = OT.initSession(apiKey, sessionId);

Keling, mijozni seansga ulab, audio va video oqimlarni nashr qilaylik:

session.connect(token, funksiya(xato))
nashriyotchi = OT.initPublisher("noshir");
session.publish(noshir);
});

Mijoz sessiyaga ulangandan so'ng, dastur Publisher OpenTok ob'ektini ishga tushiradi va boshqa mijozlar undan foyda olishlari uchun ushbu sessiya uchun audio va video oqimini nashr etadi.

session.on((
streamCreated: funktsiya (voqea) (
session.subscribe(voqea.stream, "obunachi");
}});

Shu tarzda, OpenTok platformasi asosida WebRTC videomuloqotining asosini yaratish mumkin, uni saytingizga o'tkazish mumkin. TokBox sotuvchisining ommaviy rekordida yaratilgan WebRTC-dagi video chat skrinshotining interfeysini biroz 2 marta ko'rish uchun.

Keyin bitta filmni dasturlash uchun OpenTok Server SDK-laridan foydalanib, video suhbatning server qismini yaratishingiz kerak. OpenTok Server SDK'lari sizga OpenTok seanslarini dasturiy ravishda yaratish, tokenlarni yaratish va OpenTok arxivini boshqarish imkonini beradi.

Keyin, TokBox-da media oqimlarini (Media Streams) uzatishning ikkita rejimini tanlang:

  • relayed (qayta uzatish), bu rejimda media oqimlari peeringlar o'rtasida vositachisiz uzatiladi (masalan, birma-bir video chatli brauzerlar o'rtasida);
  • marshrutlangan (marshrutlash), qaysi rejimda OpenTok Media Router mijozlar o'rtasida audio-video oqimlarni yo'naltirish uchun ishlatiladi (masalan, boy himoyalangan koristuvachi yoki onlayn translyatsiyalar uchun guruhli video chat uchun).

PubNub

PubNub global oqimli media hisoblanadi: IoT (Internet of Things), Mobil va Internet. PubNub - real vaqt rejimida ma'lumot almashish uchun veb-xizmat bo'lib, u turli platformalar: mobil telefonlar, planshetlar, veb-brauzerlar, veb-saytlar va boshqalar o'rtasida veb-muloqotlarni tashkil qilish uchun mo'ljallangan. PubNub platformalararo aloqa qo'shimchalarini yaratish va ularni veb-qo'shimchalar (veb-saytlar) va mobil ilovalarga (Java/Android va IOS) yaratish uchun asosiy dasturlash tillari uchun 70 dan ortiq SDK-larni taqdim etadi.

Yon tomonda PubNub jo'natmalarining SDK-lari tomonidan qo'llab-quvvatlanadigan filmlar ro'yxati: https://github.com/pubnub/pubnub-api. Shuni ta'kidlash kerakki, aniq PubNub dasturiy platformalari uchun API-interfeyslar REST API tomonidan ham qo'llab-quvvatlanadi. Masalan, PubNub WebRTC SDK veb-muloqotlarni (peer-to-peer tarmoqlari) real vaqt rejimida peer-to-peer arxitekturasida brauzerlar o'rtasida tashkil qilish uchun mo'ljallangan. PubNub platformasi va WebRTC texnologiyasiga asoslangan aloqa dasturida komponentlar almashinuvi arxitekturasi 2-rasmda ko'rsatilgan. 3.

WebRTC video chat komponentlari o'rtasidagi o'zaro ta'sir sxemasidan ko'rinib turibdiki (3-rasm), PubNub platformasi WebRTC qo'shimchalari uchun masshtablash signalizatsiya serveri (xizmat serveri) sifatida ishlatiladi. Bundan tashqari, PubNub platformasi mavjudligi (muxbirning mintaqasida mavjud bo'lgan ma'lumotlar yoki muxbirning joriy ro'yxati), saqlash / qayta ochish (muxbirga ma'lumotlarni saqlashga imkon berish) kabi qo'shimcha funktsiyalar mavjudligini ta'minlaydi. o'tgan mavsum tarixi) uzoq vaqt davomida.

PubNub platformasi asosidagi aloqa WebRTC plaginlari brauzer va xizmat serveri oʻrtasida bildirishnomalarni almashishning ikki usuliga ega (WebSockets va AJAX). PubNub WebRTC ni PubNub platformasiga ulash uchun yangi API taklif qilmoqda. PubNub WebRTC API PeerConnection WebRTC API yordamida peer-to-peer arxitekturasida muloqot qilish imkonini berish uchun peer-brauzerlar orasidagi signalni buzadi. Brauzerlar o'rtasida signalli xabarlar almashinuvidan so'ng ular o'rtasida video oqimlari va etarli ma'lumotlar almashinuvi uchun dupleks aloqa o'rnatiladi. Brauzer qo'ng'iroqlari PubNub tomonidan muvofiqlashtiriladi.

PubNub xizmati barcha komponentlarning o'zaro ta'siri sifatida soatiga bildirishnomalarni almashish usuli bilan "peer-to-peer" asosida brauzerlar o'rtasida zarur aloqani o'rnatishni, shuningdek, oqim uzatishning global tarmog'ini ta'minlaydi.

Video chat yaratish uchun PubNub platformasini yutib olish uchun birinchi navbatda siz PubNub-da nusxa ko'chirilmaydigan qiyshiq yozuvni yaratish usuli bilan ro'yxatdan o'tishingiz kerak. API kalitlarini olish uchun ro'yxatdan o'tish mumkin obuna_kalitі publish_key, PubNub aloqa ilovasining zarur tafsilotlari. Keyin, oblique yozuvingizga xavfsizlik, ushbu xavfsizlikning mavjudligi kabi funktsiyalarni qo'shishingiz mumkin.

API kalitlari o'chirilgandan so'ng, siz PubNub platformasi asosida aloqa dasturini yaratishga o'tishingiz, asosiy dasturlash tillaridan birini SDK yaratishingiz yoki demo dasturlarni (shablonlarni) yaratishingiz mumkin. Aloqa dasturini yaratish bo'yicha dastlabki qo'llanma yon tomonda keltirilgan: https://www.pubnub.com/docs/tutorials/pubnub-publish-subscribe. PubNub WebRTC SDK asosida video chat yaratish bo‘yicha maslahatlar https://www.pubnub.com/docs/webrtc-javascript/pubnub-javascript-sdk sahifasida ko‘rib chiqildi.

WebRTC video chatini noldan yaratish uchun yordamchiga bir nechta oddiy JavaScript API qo'shish kerak:

  • PubNub HTML kutubxonasini yon tomonga ulang. mijozni ishga tushirishdan oldin HTML tomoni kodidan oldin JavaScript PubNub SDK ni yoqish;
  • init() - PubNub API mijozini ishga tushirish;
  • obuna () - birinchi kanal uchun ortiqcha to'lov (bosing va obuna bo'ling () PubNub API usuli);
  • publish() - ma'lum bir kanalga bildirishnomalarni yuborish (PubNub API-ning publish() usulini bosing);
  • obunani bekor qilish() - qo'shiq kanali uchun ortiqcha to'lovni amalga oshirish.

PubNub mijoz API-ni ishga tushirish quyidagicha ko'rinishi mumkin:
var PUBNUB = PUBNUB.init((
publish_key: "Sizning nashr qilish kalitingiz",
subscribe_key: "Sizning obuna kalitingiz"
});

PubNub WebRTC asosida WebRTC video suhbatini yaratish uchun siz joriy chiqish kodi bilan shablonni yuklab olishingiz mumkin: https://www.pubnub.com/developers/demos/webrtc/. Robotik video suhbatni tekshirish uchun ikkita shaxsiy kompyuterdan ko'rsatilgan manzilga o'tish kerak, brauzerlarda ko'rsatiladigan video chat interfeysida telefon raqamlari koristuvachlarga tayinlangan. Kredit kartani so'rash uchun "Qabul qiluvchini yozing" matn maydoniga telefon raqamini kiriting va telefon tasviridagi tugmani bosing.

Natijada, videokameralardan olingan tasvirlar brauzerga uzatiladi va monitorlar ekranlarida ko'rsatiladi. Bundan tashqari, ushbu video chat matnni uzatish suhbati sifatida ishlash uchun mo'ljallangan. Koristuvachí povinny ro'yxati uchun "bu erda suhbat" maydoniga yaqin matnni kiriting va "Enter" tugmasini bosing. Bir oz 4 marta ko'rish uchun 164 telefon raqami bilan koristuvachning video suhbatining skrinshoti.



Guruch. 4. WebRTC bilan PubNub

Bir oz 5 marta ko'rish uchun 128 telefon raqami bilan koristuvachning video suhbatining skrinshoti.



Guruch. 5.WebRTC bilan PubNub

HTML5 va CSS3 gipermatn belgilari yordamida parchalanish uchun veb-muloqot dasturining koristuvach interfeysi uchun tayinlash. Aloqa dasturining mijoz qismining kodi JS ga bo'lingan. Veb-muloqot dasturidan oldin kutubxonalar kiritilgan: JQuery, PubNub JavaScript SDK va PubNub WebRTC SDK.

WebRTC brauzer orqali real vaqtda audio/video qo'ng'iroqlarni amalga oshirish imkonini beradi

Ushbu mavzu uchun men sizga eng oddiy WebRTC plaginini qanday amalga oshirishni aytib beraman.

1. getUserMedia - media qurilmalarga kirish (mikrofon / veb-kamera)

Hech narsa yig'ilmaydi, 10 qatorli javascript kodi yordamida siz buni brauzeringizda (demo) his qilishingiz mumkin.

index.html yarating :

Video elementidan oldin css3 filtrlarini qo'shishingiz mumkin.

Men WebRTC ni ishlab chiqishning ushbu bosqichida brauzerga “qaysi saytga ishonaman, unga kameram va mikrofonimga kirishga ruxsat bering” deb ayta olmagan va teri rangi / yon tomoni yangilangandan so'ng "Ruxsat berish" tugmasini bosishim kerak bo'lganlar meni adashtirib qo'ydi. .

Bitta brauzerda kameradan foydalanishga ruxsat berganmisiz, deb o‘ylamaylik, aks holda urinib ko‘rganingizda PERMISSION_DENIED ruxsatini oling.

2. Signal serveri (signal serveri)

Bu erda men bir mijozda webRTC imkoniyatini namoyish qilish uchun boshqa yo'l bilan "webrtc starting" ko'rsatmalarini buzaman, bu esa tushuntirishga biroz ko'proq qo'shiladi.

Signal serveri - bu mijozlar o'rtasidagi aloqani ta'minlaydigan, qo'ng'iroqlarni, avf etish haqidagi qo'ng'iroqlarni boshlaydigan va yopadigan WebRTC muvofiqlashtirish markazi.

Bizning portimizdagi signalizatsiya serveri Node.js + socket.io + node-static bo'lib, 1234 portni tinglaydi.
Bundan tashqari, node-static index.html dan foydalanishi mumkin, shuning uchun biz qo'shimchani iloji boricha soddalashtirishimiz mumkin.

Daddy dasturlari uchun quyidagilarni o'rnatish kerak:

NPM install socket.io NPM install node-static

EVROPEYSKIY KORRIVUCHIY MEREZHI DVI Qismlarga minib: Zgídulyzi Writhuanons Elestituity Analizu Mudsochi Dumaning Allenbakh (NíMECHINA), Skype, Chat That Systems of Mittzova Obmína Riddomlenni bo'ldi Nevid'ya5ẑ̉n919 uchun Particular Particular Million. xizmatlar vyd vypadku, va 28 million oldin ular atrofida osilib yo'q.

Vaziyat o'zgarishi mumkin, shardlar endi Firefox bilan birlashtirilgan real vaqtda aloqa texnologiyasi (WebRTC) va mijozning o'ziga qo'ng'iroq qiling. Audio va video suhbatni endi boshlang, hech narsa murakkabroq emas, saytni pasaytiring. Bunday xizmatlar, Facebook va Skype kabi, bir vaqtning o'zida, mijozning g'alaba hal qilish tezligini oshirish va ommaviy rekord yaratish.

WebRTC nafaqat zastosuvannyaning soddaligi bilan rezonanslashadi. Ushbu usul sizga o'rnatish imkonini beradi ikkita brauzer o'rtasida to'g'ridan-to'g'ri ulanish. Shu tarzda, audio va video ma'lumotlar server orqali o'tmaydi, bu erda u to'lib ketishi mumkin, aks holda ma'lum bir turdagi ma'mur shaxsiy sohani maxsus qayta tiklash yoki ma'lumotlarni himoya qilish haqida qayg'urmaydi. WebRTC to'g'ridan-to'g'ri ulanishi uchun hech qanday xizmatni ro'yxatdan o'tkazish yoki jismoniy qayd etish talab qilinmaydi.

Kobi uchun faqat yordam uchun o'tish kerak. Spillkuvannya shaxsiy bo'lib qoladi Ma'lumotlar oqimining parchalari shifrlangan. Brauzer orqali real vaqt rejimida aloqa qilish, Google 2011 yilda WebRTC dasturining kodini nashr etgandan so'ng faol ishlay boshladi.

Yaqinda oxirgi Chrome va Firefox kuchli WebRTC dvigatellari tomonidan olib tashlandi. Ushbu soatda mobil variantlar bir xil texnologiya va Android 5.0 bilan bir vaqtning o'zida o'rnatiladigan qo'shimchalar bilan jihozlangan WebView 3.6 dvigateli bilan jihozlangan.

Haqiqiy vaqtda muloqot qilish uchun veb-brauzer JavaScript interfeysi bilan jihozlangan bo'lishi kerak. GetUserMedia yordami uchun dasturiy ta'minot audio va video qurilmalarni, ya'ni veb-kamera va mikrofondan saqlashni faollashtiradi. RTCPeerConnection ulanishni o'rnatish uchun, shuningdek, aloqaning o'zi uchun javobgardir.

Brauzer integratsiyasi bilan parallel ravishda, World Wide Web Consortium (W3C) ishchi guruhi WebRTC standartlashtirish jarayonini majbur qildi. May 2015-yilda tugaydi.

WebRTC Malimdan mamnun

WebRTC xizmatidan foydalanish uchun sizga ko'p resurslar kerak emas; Z'ednanny o'rnatilishi ham ayniqsa buklanadigan holga kelmaydi. Shu bilan birga, brauzer WebRTC serveriga qo'ng'iroqni yuborishni rejalashtirayotgani haqida signal yuboradi. Serverning sharob turini HTTPS yoqilganligini aniqlaydi - qo'ng'iroq shifrlangan formatda amalga oshiriladi. Tsey havolasi koristuvach o'zining spymasteridan ustun keladi. Shundan so'ng brauzer koristuvachdan veb-kamera va mikrofonga kirishni so'radi.

Brauzer brauzeri bilan to'g'ridan-to'g'ri oqim ulanishini o'rnatish uchun brauzer WebRTC xizmat turini va IP manzilini va berilgan konfiguratsiyani taniydi. Svívrozmovnik veb-brauzeri xuddi shunday paydo bo'lishi kerak.

Oqimli ulanish uzluksiz va yuqori darajada ishlashi uchun brauzerda uchta dvigatel ishlaydi. Ulardan ikkitasi audio videoni optimallashtiradi va siqib chiqaradi, uchinchisi esa ularni tashish uchun. Vín yordam uchun ma'lumot yubordi SRTP protokoli(Secure Real-time Transport Protocol), bu real vaqtda shifrlangan oqimga imkon beradi.

Agar uni to'g'ridan-to'g'ri o'rnatishni bilmasangiz, WebRTC boshqa yo'l bilan ko'rinadi. Misol uchun, u holda bo'lishi kerak, agar merezhevy yo'lni o'zgartirish uchun o'rnatilgan bo'lsa, STUN serveri IP manzilini aytib berishi mumkin. WebRTC standarti TURN (NAT atrofida o'tish o'rni) serveri yoqilgan bo'lsa ham, qaysi yo'l bilan mumkin bo'lishini oldinga siljitadi. Shunday qilib, netscan.co saytida siz WebRTC kompyuteringizda va Merezhya-ga kirishingiz bilan amalga oshirilganligini tekshirishingiz mumkin.

Kun qanday

Ro'yxatdan o'tish kerak rozmovu (1). WebRTC xizmati so'rov beradi, chunki qo'ng'iroq qiluvchini yuborish kerak. STUNserver yordamida brauzer o'zining IP-manzilini oladi (2), xizmatni tahrirlaydi va to'g'ridan-to'g'ri ulanishni o'rnatish uchun sherikning IP-manzilini oladi (3). Agar STUN g'alaba qozonishga harakat qilmasa, bibariya TURN serverining yordamiga yo'naltiriladi (4).

Brauzerda WebRTC texnologiyasi so'rovi qo'shimcha JavaScript uchun ishga tushirildi. Aloqa uchun uchta dvigatel mas'uldir: ovozli vosita va video dvigatel veb-kamera va mikrofondan multimedia ma'lumotlarini to'playdi va transport mexanizmi bu ma'lumotni SRTP (Secure Real-time Protocol) protokoli yordamida shifrlangan video bilan birlashtiradi.

Brauzerlar WebRTC bilan qanday ishlaydi

Chrome va Firefox WebRTC dvigateli, talky.io kabi xizmat turi bilan jihozlangan. Mozilla kabi brauzer to'g'ridan-to'g'ri mijozingiz bilan ishlatilishi mumkin.

Google va Mozilla real vaqt rejimida aloqa g‘oyasini ishlab chiqishda davom etmoqda: Chrome bir qancha ishtirokchilar bilan WebRTC konferensiyasini o‘tkazishi mumkin va Firefox’dagi yangi Hello mijozi Telefonica telekom gigantining sho‘’ba korxonasi uchun ishlab chiqilmoqda. Apple hali ham chetda, Safari WebRTC tekshiruvlari hali ham varto emas. Biroq, iOS uchun muqobil dasturlar va Safari uchun plaginlar mavjud emas.

Microsoft korporatsiyasi boshqa yo'ldan bormoqda. Raqobatbardosh Skype xizmatining ustasi sifatida bu kompaniya WebRTC-ga osonlikcha taslim bo'lishni tanlamaydi. Microsoft Internet Explorer uchun ORTC (Object Real-Time Communications) deb nomlangan texnologiyani ishlab chiqmoqda.

WebRTC-dagi bunday xususiyatlar, shuningdek, server bilan aloqa o'rnatish uchun boshqa kodeklar va protokollar ahamiyatsiz va hamma narsa uchun ko'proq mos keladi, WebRTC standartiga qo'shimchaga aylanadi, bu juda ko'p farqlarni o'z ichiga oladi. Bu darajada, bortda, Apple-dan kamroq - qoida tariqasida.

Surat: virus kompaniyalari; goodluz/Photolia.com

Dasturlar