WebRTC карысны для праграм-відэанянь, бо можа надзейна перадаваць аўдыя і відэа ў рэальным часе. Але гэта не знак якасці ўсяго прадукту. Бяспечнае спалучэнне прылад, зразумелыя дазволы і выразныя індыкатары стану праграма ўсё адно мусіць добра рэалізаваць сама.
Кароткі слоўнічак
- Захоп медыя
- Праграма запытвае доступ да мікрафона і камеры, каб атрымліваць з прылады аўдыя і відэа ў рэальным часе.
- Peer Connection
- Злучэнне, якое перадае жывое аўдыя, відэа і, магчыма, даныя паміж дзвюма прыладамі.
- Канал даных
- Дадатковы канал для каманд кіравання, напрыклад для ўключэння рэжыму «націсні і гавары» або пераключэння камеры.
- ICE / TURN
- Спосабы ўсталявання злучэння, якія дапамагаюць прыладам знайсці дзейсны маршрут праз маршрутызатары, NAT і сеткавыя абмежаванні.
Спрошчаная архітэктура
Што звычайна адбываецца падчас сеанса WebRTC-відэаняні
Прылады абменьваюцца звесткамі для злучэння
Дзякуючы сігнальнаму абмену абодва бакі даведваюцца, як звязацца адзін з адным.
Доступ да мікрафона і камеры даецца на самой прыладзе
Прылада ўключае мікрафон і, пры патрэбе, камеру толькі пасля атрымання адпаведных дазволаў.
Выбіраецца прамы шлях або рэтранслятар
ICE вызначае, ці магчымы прамы маршрут, ці патрэбны рэтранслятар TURN.
Медыя і даныя кіравання перадаюцца паралельна
Аўдыя і відэа перадаюцца ў рэальным часе, а асобныя каманды кіравання могуць ісці па канале даных.
Чаму WebRTC добра падыходзіць для відэанянь
Для відэаняні не патрэбныя ні архіў паведамленняў, ні сістэма адкладзенай загрузкі. Ёй патрэбныя гук з малой затрымкай, нагляднае адлюстраванне стану ў рэальным часе і прадказальная праца пры змене ўмоў сеткі. Менавіта ў гэтым перавагі WebRTC: перадача медыя ў рэальным часе, сувязь паміж прыладамі і магчымасць дадаць асобны канал кіравання.
Для бацькоў гэта азначае, што прадукт на базе WebRTC звычайна спрабуе наўпрост вырашыць задачу жывой сувязі, а не імітаваць яе больш павольнымі або менш прыдатнымі механізмамі. Гэта карысна. Але само па сабе гэта нічога не кажа пра сумленнасць прадукту, яснасць яго працы з дазволамі ці пра тое, якая частка архітэктуры застаецца схаванай.
Чаму серверы ўсё роўна патрэбныя, нават калі кажуць пра peer-to-peer
Тут у многіх бацькоў слушна ўзнікаюць сумненні. Peer-to-peer не значыць, што сервер ніколі не задзейнічаны. Спачатку прылады павінны знайсці адна адну, абмяняцца данымі для злучэння, а ў складаных сетках часам скарыстацца рэтранслятарам. Серверы сігнальнага абмену і TURN-серверы — гэта нармальна. Важна, для чаго яны выкарыстоўваюцца і наколькі ясна праграма гэта тлумачыць.
Праграма-відэаняня можа выкарыстоўваць серверы і пры гэтым беражліва ставіцца да прыватнасці, калі іх роля строга абмежаваная і добра растлумачаная. Праблемы пачынаюцца, калі тэхнічнае пасярэдніцтва ператвараецца ў невыразна апісанае захоўванне даных, незразумелую логіку ўліковых запісаў або непрыкметнае працяглае захоўванне інфармацыі.
| Кампанент WebRTC | Чаму гэта важна для відэаняні |
|---|---|
| getUserMedia | Кіруе доступам да мікрафона і камеры, таму дазволы тут — пытанне першай важнасці. |
| RTCPeerConnection | Забяспечвае перадачу медыя ў рэальным часе паміж дзвюма прыладамі. |
| ICE / TURN | Дапамагае сеансу працягвацца, калі маршрутызатары і NAT ускладняюць прамую сувязь. |
| DataChannel | Дазваляе выкарыстоўваць дадатковыя функцыі кіравання паралельна з асноўным медыяпатокам. |
Чаго WebRTC не вырашае аўтаматычна
WebRTC сам па сабе не стварае бяспечнага спалучэння прылад. Ён не вырашае, як прадукт кіруе ідэнтычнасцю карыстальнікаў, як доўга захоўваюцца даныя сігнальнага абмену і ці паказвае інтэрфейс разрыў злучэння. Таму прадукт можа сапраўды выкарыстоўваць WebRTC і ўсё ж быць няўдалым або непразрыстым у тым, што найбольш важна для бацькоў.
Практычная выснова простая: «выкарыстоўвае WebRTC» — карысная падказка, але не канец праверкі. Пасля гэтай фразы пачынаецца сапраўдная работа: спалучэнне прылад, прыватнасць, дазволы, паводзіны ў сетцы і сумленнасць прадукту.
Якія пытанні пра WebRTC бацькам сапраўды варта задаць
спытайце, як у ёй арганізаваны сігнальны абмен, спалучэнне прылад і нагляднае адлюстраванне стану злучэння.
спытайце, якія серверы ўсё ж выкарыстоўваюцца і ці абмежаваная і зразумелая іх роля.
уважліва праверце дазволы, працу рэтрансляцыі і тое, як праграма тлумачыць пытанні прыватнасці, а не лічыце, што адной назвы тэхналогіі дастаткова.
Праверка тэхнічнай абгрунтаванасці
- Ці зразумела, навошта патрэбны дазволы на мікрафон, камеру і лакальную сетку?
- Ці тлумачыць прадукт, як прылады знаходзяць адна адну і пачынаюць сеанс?
- Ці рэтрансляцыя растлумачана як зразумелая рэч, а не нешта магічнае?
- Ці паказваецца бацькам стан злучэння простымі і зразумелымі словамі?
- Ці аповед пра архітэктуру не зводзіцца да фразы «мы выкарыстоўваем WebRTC»?
Часта задаваныя пытанні
Што такое WebRTC у відэаняні?
WebRTC — гэта тэхналогія для зашыфраваных злучэнняў паміж прыладамі ў рэальным часе. Яна перадае аўдыя і відэа і, у залежнасці ад сеткі, можа працаваць напрамую або праз сервер-рэтранслятар.
Ці можа TURN-сервер бачыць відэа з відэаняні?
TURN-сервер перасылае пакеты, калі прамы маршрут недаступны. Медыя застаецца абароненым транспартным шыфраваннем WebRTC і не захоўваецца там у выглядзе запісу.
Навошта WebRTC патрэбны яшчэ і сігнальны абмен?
Спачатку прылады павінны абмяняцца звесткамі пра злучэнне, і толькі потым можа запусціцца медыяканал. Гэты сігнальны абмен таксама мусіць быць абаронены, а яго даныя — захоўвацца як мага менш і выдаляцца пасля наладжвання.
Крыніцы і матэрыялы для далейшага чытання
- Пачатак працы з WebRTC · WebRTC
- WebRTC API · MDN Web Docs
- MediaDevices: getUserMedia() · MDN Web Docs
- Як запытваць дазволы для праграмы · Android Developers
- Запыт доступу да абароненых рэсурсаў · Дакументацыя для распрацоўшчыкаў Apple
- Ананімная аўтэнтыфікацыя ў Firebase · Дакументацыя Firebase
- NSLocalNetworkUsageDescription · Дакументацыя для распрацоўшчыкаў Apple
- Бяспека і архітэктура Babyphone Timmy · Babyphone Timmy