Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Vhidhiyo kutaurirana ndiyo nzira huru yekukurukurirana pakati pemudzidzisi nemudzidzi paVimbox papuratifomu. Isu takasiya Skype kare kare, takaedza akati wandei-bato mhinduro uye takazogara paWebRTC - Janus-gedhi musanganiswa. Kwenguva yakati takafara nezvose, asi zvakadaro zvimwe zvakashata zvakaramba zvichibuda. Nekuda kweizvozvo, imwe nzira yevhidhiyo yakaparadzana yakagadzirwa.

Ndakabvunza Kirill Rogovoy, mukuru wegwara idzva, kuti ataure nezve shanduko yevhidhiyo kutaurirana kuSkyeng, matambudziko akawanikwa, mhinduro nemadondoro atakazoshandisa. Tinovimba kuti chinyorwa chichabatsira kumakambani anogadzirawo vhidhiyo ega kuburikidza newebhu application.

A bit of history

Muzhizha ra2017, mukuru weSkyeng Development, Sergey Safonov, akataura kuBackend Conf nenyaya yekuti "takasiya Skype nekushandisa WebRTC." Vanofarira vanogona kuona kurekodhwa kwehurukuro yacho pa batanidzo (~ 45 min), uye pano ini ndichatsanangura muchidimbu hunhu hwayo.

KuSkyeng Chikoro, kutaurirana kwevhidhiyo kwagara iri nzira yakakosha yekukurukurirana kwemudzidzisi-mudzidzi. Pakutanga, Skype yakashandiswa, asi yakange isingagutsikane nekuda kwezvikonzero zvakawanda, zvakanyanya nekuda kwekushaikwa kwematanda uye kusagoneka kwekubatanidzwa zvakananga muwebhu application. Naizvozvo, takaita mhando dzese dzekuyedza.

Chaizvoizvo, zvatinoda pakukurukurirana kwevhidhiyo zvaive zvinotevera:
- kugadzikana;
- mutengo wakaderera pachidzidzo;
- zvidzidzo zvekurekodha;
β€” kuronda kuti ndiani anotaura zvakawanda (zvakakosha kwatiri kuti vadzidzi vataure kupfuura mudzidzisi panguva yezvidzidzo);
- kuyera mutsara;
- kugona kushandisa zvese UDP uye TCP.

Yekutanga kuyedza yaive yekushandisa Tokbox muna 2013. Zvese zvaive zvakanaka, asi zvakazove zvinodhura - 113 rubles pachidzidzo - uye vakadya purofiti.

Zvino muna 2015, Voximplant yakabatanidzwa. Heino basa rataida kuti titarise kuti ndiani akataura kuti yakawanda sei, uye panguva imwechete mhinduro yacho yaive yakachipa: kana chete odhiyo yakanyorwa, inodhura makumi maviri rubles pachidzidzo. Nekudaro, yakashanda chete kuburikidza neUDP uye haina kukwanisa kushandura kuTCP. Nekudaro, vangangoita 20% yevadzidzi vakapedzisira vaishandisa.

Kwapera gore, takatanga kuva nevatengi vemakambani vane zvavanoda chaizvo. Semuenzaniso, zvese zvinofanirwa kushanda kuburikidza nebrowser; iyo kambani inovhura chete http uye https; i.e. hapana Skype kana UDP. Vatengi vemakambani = mari, saka vakadzokera kuTokbox, asi dambudziko remutengo harina kupera.

Solution - WebRTC uye Janus

Yakasarudza kushandisa browser chikuva chevezera-kune-vezera vhidhiyo kutaurirana WebRTC. Iyo ine basa rekumisikidza chinongedzo, encoding uye decoding nzizi, kuwiriranisa mateki uye kutonga kwemhando nekubata network glitches. Kune chikamu chedu, isu tinofanirwa kuve nechokwadi chekuverenga hova kubva kamera uye maikorofoni, kudhirowa vhidhiyo, kutonga chinongedzo, kumisikidza yeWebRTC yekubatanidza uye kuendesa hova kwairi, pamwe nekutumira mameseji ekusainira pakati pevatengi kuti vatange kubatana (WebRTC pachayo inotsanangura chete data format, asi kwete maitiro ayo ekufambisa). Kana vatengi vari kuseri kweNAT, WebRTC inobatanidza STUN maseva; kana izvi zvisingabatsiri, TURN maseva.

Yenguva dzose p2p yekubatanidza haina kukwana kwatiri, nekuti isu tinoda kurekodha zvidzidzo zvekuwedzera kuongororwa kana paine zvichemo. Naizvozvo isu tinotumira WebRTC hova kuburikidza nerelay Janus Gateway naMeetecho. Nekuda kweizvozvo, vatengi havazive kero dzemumwe nemumwe, vachiona chete kero yeJanus server; inoitawo mabasa evhavha yechiratidzo. Janus ane zvakawanda zvezvinhu zvatinoda: inoshandura otomatiki kuTCP kana mutengi aine UDP yakavharwa; inogona kurekodha zvese UDP uye TCP hova; scalable; Kune kunyange yakavakirwa-mukati plugin ye echo bvunzo. Kana zvichidikanwa, STUN uye TURN maseva kubva kuTwilio anobatanidzwa otomatiki.

Muzhizha ra 2017, takanga tine mavhavha maviri eJanus aimhanya, pamwe nesevha yekuwedzera yekugadziridza akarekodhwa akarekodhwa maodhiyo uye vhidhiyo mafaera, kuti asatore ma processor eakanyanya. Kana uchibatanidza, maseva eJanus akasarudzwa pane zvisingaite-kunyange nheyo (nhamba yekubatanidza). Panguva iyoyo, izvi zvakanga zvakakwana, maererano nemanzwiro edu, zvakapa anenge mana ekuchengetedza margin, chikamu chekushandiswa chakanga chiri pamusoro pe80. Panguva imwecheteyo, mutengo wakaderedzwa kusvika ~ 2 rubles pachidzidzo, pamwe nekusimudzira uye kutsigirwa.

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Kudzokera kunyaya yekukurukurirana kwevhidhiyo

Isu tinogara tichitarisa mhinduro kubva kuvadzidzi nevadzidzisi kuitira kuti tione nekugadzirisa matambudziko nenguva. Pakazosvika zhizha ra2018, mhando yekufona yaive yakasimba munzvimbo yekutanga pakati pekunyunyuta. Kune rumwe rutivi, izvi zvaireva kuti takanga tabudirira kukunda zvimwe zvikanganiso. Kune rimwe divi, zvaive zvakafanira kuita chimwe chinhu nekuchimbidza: kana chidzidzo chikavhiringidzwa, tinotadza kurasikirwa nekukosha kwayo, dzimwe nguva pamwe nemutengo wekutenga pasuru inotevera, uye kana chidzidzo chekutanga chikavhiringidzwa, tinotadza kurasikirwa nemutengi. pamwe chete.

Panguva iyoyo, kutaurirana kwedu kwevhidhiyo kwaive kuchiri muMVP mode. Zvichitaurwa zviri nyore, vakazvitangisa, zvakashanda, vakazviyera kamwe chete, vakanzwisisa maitirwo azvo - zvakanaka, zvakanaka. Kana zvikashanda, usazvigadzirisa. Hapana akataura nemaune nyaya yehutano hwekutaurirana. Pakazosvika Nyamavhuvhu, zvakava pachena kuti izvi zvaisagona kuenderera, uye isu takatanga nzira yakaparadzana kuti tione kuti chii chakanga chisina kunaka neWebRTC naJanus.

Pakupihwa, gwara iri rakagashira: mhinduro yeMVP, hapana metrics, hapana zvibodzwa, hapana maitiro ekuvandudza, nepo 7% yevadzidzisi vachinyunyuta nezve kunaka kwekutaurirana (pakanga pasina data pavadzidzi zvakare).

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Nzira itsva iri kuitika

Murairo unotaridzika seizvi:

  • Mukuru wedhipatimendi, uyo ari zvakare mugadziri mukuru.
  • QA inobatsira kuedza kuchinja, kutsvaga nzira itsva dzekugadzira mamiriro ekutaurirana asina kugadzikana, uye inoshuma matambudziko kubva kumutsara wepamberi.
  • Muongorori anogara achitsvaga kuwirirana kwakasiyana-siyana mune data data, inovandudza kuongororwa kwemhinduro yemushandisi, uye inotarisa mhedzisiro yezviedzo.
  • Maneja wechigadzirwa anobatsira negwara rese uye kugovera zviwanikwa zvekuyedza.
  • Wechipiri mugadziri anowanzo batsira nehurongwa uye ane hukama mabasa.

Kutanga, isu takagadzira metric yakavimbika yakateedzera shanduko mukuongororwa kwemhando yekutaurirana (avhareji nemazuva, mavhiki, mwedzi). Panguva iyoyo, aya akanga ari mamakisi kubva kuvadzidzisi; gare gare mamakisi evadzidzi akawedzerwa kwavari. Vakabva vatanga kuvaka fungidziro pamusoro pezvaitadza kushanda zvakanaka, kuzvigadzirisa, uye kutarisa shanduko mumasimba. Takaenda kune michero yakaderera-yakarembera: somuenzaniso, takatsiva vp8 codec ne vp9, kushanda kwakagadziridzwa. Takaedza kutamba neJanus marongero uye kuitisa zvimwe zviedzo - kazhinji ivo havana kutungamira kune chero chinhu.

Pachikamu chechipiri, pfungwa yakabuda: WebRTC ndeye peer-to-peer solution, uye tinoshandisa sevha pakati. Zvichida dambudziko riri pano? Takatanga kuchera uye takawana yakakosha kuvandudzwa kusvika zvino.

Panguva iyoyo, sevha kubva padziva yakasarudzwa uchishandisa algorithm yakapusa: imwe neimwe yaive ne "huremu" hwayo, zvichienderana nechiteshi uye simba, uye takaedza kutumira mushandisi kune iyo ine "huremu" hukuru, pasina. kutarisisa kuti mushandisi aive papi nenzvimbo . Somugumisiro, mumwe mudzidzisi wokuSt. Petersburg aigona kukurukura nomudzidzi aibva kuSiberia nomuMoscow, uye kwete kupfurikidza naJanus server yedu muSt.

Iyo algorithm yakagadziridzwa zvakare: ikozvino, kana mushandisi avhura chikuva chedu, isu tinounganidza pings kubva kwaari kune ese maseva anoshandisa Ajax. Pakumisikidza chinongedzo, tinosarudza peya yepings (mudzidzisi-server uye mudzidzi-server) ine diki diki. Kuderera ping kunoreva kushoma network kureba kune server; chinhambwe chipfupi zvinoreva mukana wakaderera wekurasikirwa nemapaketi; Packet kurasikirwa ndicho chinhu chikuru chakaipa mukukurukurirana kwevhidhiyo. Mugove wekusava nehanya wakadonha nehafu mumwedzi mitatu (kuti zvive zvakanaka, zvimwe zviedzo zvakaitwa panguva ino, asi iyi inenge ine simba rakawanda).

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Isu munguva pfupi yapfuura takawana chimwe chisiri pachena, asi sechinhu chakakosha: pachinzvimbo cheimwe ine simba Janus server pane gobvu chiteshi, zviri nani kuve maviri akareruka ane akatetepa bandwidth. Izvi zvakava pachena mushure mekunge tatenga michina ine simba netarisiro yekurovera semakamuri mazhinji (maseji ekutaurirana) mukati mawo panguva imwe chete. Masevha ane muganhu we bandwidth, iyo yatinogona kushandura zvakarurama muhuwandu hwemakamuri - tinoziva kuti vangani vanogona kuvhurwa, somuenzaniso, pa 300 Mbit / s. Pakangove nemakamuri akawandisa akavhurwa pane sevha, isu tinomira kusarudza iyo yezviitwa zvitsva kusvika mutoro wadzikira. Pfungwa yacho yaiva yokuti, tatenga muchina une simba, taizotakudza chiteshi chacho kusvika pakakwirira, kuitira kuti pakupedzisira zvigadziriswe ne processor uye chiyeuchidzo, uye kwete ne bandwidth. Asi zvakazoitika kuti mushure meimwe nhamba yemakamuri akazaruka (420), zvisinei nekuti mutoro uri pa processor, chiyeuchidzo uye dhisiki zvichiri kure nemiganhu, negativity inotanga kusvika pakutsigirwa kwehunyanzvi. Sezviri pachena, chimwe chinhu chiri kuwedzera kuipa mukati meJanus, pamwe pane zvimwe zvinorambidzwa ipapo. Takatanga kuedza, kudzikisa bandwidth muganho kubva pa300 kusvika ku200 Mbit / s, uye matambudziko akaenda. Iye zvino takatenga maseva matatu matsva panguva imwe chete nemiganhu yakaderera uye maitiro, tinofunga kuti izvi zvinotungamirira kuhutano hwakagadzikana muhutano hwekutaurirana. Chokwadika, hatina kuedza kufunga kuti chii chaiitika ikoko; madondoro edu ndizvo zvose. Mukuzvidzivirira kwedu, ngatitii panguva iyoyo zvaive zvakakodzera kugadzirisa dambudziko rekumanikidza nekukurumidza sezvinobvira, uye kwete kuita zvakanaka; kunze kweizvozvo, Janus kwatiri ibhokisi dema rakanyorwa neC, rinodhura zvakanyanya kuitanga naro.

Kubva kuSkype kuenda kuWebRTC: kuronga kwatakaita kutaurirana kwevhidhiyo kuburikidza newebhu

Zvakanaka, mukuita isu:

  • yakagadziridza zvese zvinotsamira zvinogona kuvandudzwa, pasevha uye pamutengi (izvi zvaive zvakare zviedzo, isu takatarisa mhedzisiro);
  • yakagadzirisa mabhugi ese akaonekwa ane chekuita neakananga nyaya, semuenzaniso, apo kubatana kwakadonha uye hakuna kudzoserwa otomatiki;
  • Takaita misangano yakawanda nemakambani anoshanda mumunda wekukurukurirana kwevhidhiyo uye anoziva matambudziko edu: mitambo yekufambisa, kuronga webinars; takaedza zvose zvaiita sezvinobatsira kwatiri;
  • Yakaita ongororo yehunyanzvi hwehardware uye yemhando yekutaurirana yevadzidzisi, kwakabva zvichemo zvakanyanya.

Zviyedzo uye shanduko dzakazotevera dzakaita kuti zvikwanise kuderedza kusagutsikana nekutaurirana pakati pevadzidzisi kubva pa7,1% muna Ndira 2018 kusvika 2,5% muna Ndira 2019.

Chii chinotevera

Kudzikamisa yedu Vimbox chikuva ndeimwe yemapurojekiti makuru ekambani e2019. Tine tarisiro huru yekuti tichakwanisa kuchengetedza kukurumidza uye hatichaoni kutaurirana kwevhidhiyo muzvichemo zvepamusoro. Isu tinonzwisisa kuti chikamu chakakosha chezvichemo izvi zvine chekuita nekunonoka mumakomputa evashandisi neInternet, asi isu tinofanira kuona chikamu ichi uye kugadzirisa zvimwe. Zvimwe zvese idambudziko rehunyanzvi, zvinoita sekunge tinofanira kukwanisa kurarama naro.

Dambudziko guru nderekuti hatizive kusvika padanho ripi rinogoneka kuvandudza mhando. Kuwana sirin'i iyi ndiro basa guru. Naizvozvo, kuedza kuviri kwakarongwa:

  1. enzanisa vhidhiyo kuburikidza naJanus neyakajairwa p2p mumamiriro ekurwa. Kuedza uku kwakatoitwa, hapana mutsauko wakakosha wakawanikwa pakati pemhinduro yedu uye p2p;
  2. Ngatipei (inodhura) masevhisi kubva kumakambani anoita mari chete pavhidhiyo mhinduro dzekukurukurirana, uye enzanisa huwandu hwekusaziva kubva kwavari neicho chiripo.

Zviyedzo zviviri izvi zvinotitendera kuona chinangwa chinogoneka totarisa pachiri.

Mukuwedzera, kune akati wandei emabasa anogona kugadziriswa nguva nenguva:

  • Isu tinogadzira tekinoroji metric yehutano hwekutaurirana pachinzvimbo chekuzviongorora;
  • Isu tinogadzira mamwe akadzama echikamu matanda kuitira kunyatsoongorora kutadza kunoitika, kunzwisisa kuti ndepapi uye kupi chaizvo zvakaitika, uye ndezvipi zviitiko zvinoita sezvisina hukama zvakaitika panguva iyoyo;
  • Isu tinogadzirira otomatiki yekubatanidza mhando bvunzo pamberi pechidzidzo, uye zvakare tinopa mutengi mukana wekuti aedze manyorero ekubatanidza kuitira kuti aderedze huwandu hwekusaziva hunokonzerwa nehardware yake uye chiteshi;
  • isu tichagadzira uye kuitisa yakawanda vhidhiyo yekukurukurirana mutoro bvunzo mumamiriro asina kunaka, nekusiyana kwepaketi kurasikirwa, nezvimwe;
  • isu tinoshandura maitiro emaseva kana paine matambudziko kuwedzera kukanganisa kushivirira;
  • Tichanyevera mushandisi kana pane chimwe chinhu chakaipa nekubatana kwake zvachose, sezvinoita Skype, kuitira kuti anzwisise kuti dambudziko riri parutivi rwake.

Kubva muna Kubvumbi, iyo vhidhiyo yekutaurirana kutungamira yave yakazara-yakasiyana purojekiti mukati meSkyeng, inobata nechigadzirwa chayo, kwete chikamu cheVimbox chete. Izvi zvinoreva kuti tave kutanga kutsvaga vanhu pa kushanda nevhidhiyo mune yakazara nguva modhi. Zvakanaka, senguva dzose Tiri kutsvaga vanhu vakanaka vakawanda.

Uye, hongu, isu tinoramba tichishingairira kutaura nevanhu uye makambani anoshanda nevhidhiyo kutaurirana. Kana iwe uchida kuchinjana ruzivo nesu, isu tichafara! Comment, bata - tichapindura munhu wese.

Source: www.habr.com