Մոտ վեց ամիս առաջ ես որոշեցի ստեղծել ծրագիր՝ համակարգիչը բրաուզերի միջոցով կառավարելու համար։ Ես սկսեցի պարզ մեկ վարդակից HTTP սերվերից, որը պատկերներ էր փոխանցում զննարկիչին և վերահսկման համար ստանում կուրսորի կոորդինատները:
Որոշակի փուլում ես հասկացա, որ WebRTC տեխնոլոգիան լավ է հարմար այդ նպատակների համար: Նման լուծում ունի Chrome բրաուզերը՝ այն տեղադրվում է ընդլայնման միջոցով։ Բայց ես ուզում էի մի թեթեւ ծրագիր պատրաստել, որը կաշխատի առանց տեղադրման:
Սկզբում փորձեցի օգտվել Google-ի տրամադրած գրադարանից, բայց կազմելուց հետո այն զբաղեցնում է 500MB: Ես ստիպված էի գրեթե զրոյից իրականացնել WebRTC ամբողջ փաթեթը և կարողացա ամեն ինչ տեղավորել 2.5 ՄԲ exe ֆայլի մեջ: Ընկերն օգնեց JS-ում ինտերֆեյսի հարցում, և սա այն է, ինչով մենք հայտնվեցինք:
Եկեք գործարկենք ծրագիրը.
Բացեք հղումը դիտարկիչի ներդիրում և ստացեք ամբողջական մուտք դեպի աշխատասեղան.
Միացման գործընթացի կարճ անիմացիա.
Աջակցում է Chrome, Firefox, Safari, Opera:
Հնարավոր է փոխանցել ձայն, աուդիո զանգ, կառավարել clipboard-ը, փոխանցել ֆայլեր և զանգահարել տաք ստեղներ:
Ծրագրի վրա աշխատելիս ես ստիպված էի ուսումնասիրել մեկ տասնյակ RFC-ներ և հասկանալ, որ ինտերնետում բավարար տեղեկատվություն չկա WebRTC արձանագրության աշխատանքի մասին։ Ես ուզում եմ հոդված գրել այն տեխնոլոգիաների մասին, որոնք օգտագործվում են դրանում, կցանկանայի պարզել, թե հետևյալ հարցերից որոնք են հետաքրքրում համայնքին.
- SDP հոսքային տվյալների նկարագրության արձանագրություն
- ICE թեկնածուներ և կապ հաստատել երկու կետերի՝ STUN և TURN սերվերների միջև
- DTLS միացում և բանալիների փոխանցում RTP նիստին
- RTP և RTСP արձանագրություններ՝ գաղտնագրմամբ՝ մեդիա տվյալների փոխանցման համար
- Փոխանցեք H264, VP8 և Opus-ը RTP-ի միջոցով
- SCTP միացում երկուական տվյալների փոխանցման համար
Source: www.habr.com