WeBRTC ili web stvarnu komunikaciju, revolucionirao je način na koji komunicirali na webu. Omogućuje stvarno - vrijeme audio, video i dijeljenju podataka između preglednika bez potrebe za dodacima. Reagirajte, s druge strane, je super popularna JavaScript biblioteka za izgradnju korisničkih sučelja. Kada kombinirate ove dvije moćne tehnologije, može dovesti do nekih zaista cool aplikacija, poput video konferencija, prehrambenih platformi i još mnogo toga. A evo gde kuke dolaze u super zgodno! Kao dobavljač kuka, podijelit ću s vama kako koristiti kuke za Webtc u reagiranju.
Razumijevanje osnova Webtc
Prije nego što zaronimo u upotrebu kuka, brzo pređemo preko nekih osnova Webtc-a. WeBRTC se uglavnom sastoji od tri ključne komponente: Mediastream (za pristup korisničkoj kameru i mikrofonu), RTCPeerConnection (za uspostavljanje veze između vršnjaka) i RTCDatachanel (za slanje i primanje podataka).
Mediastream vam omogućuje pristup medijskim uređajima korisnika. Na primjer, možete ga koristiti da biste dobili video i audio ulaz iz korisničke web kamere i mikrofona. RTCPeerConnection je odgovoran za stvaranje izravne veze između dva vršnjaka. Rukuje sa svim niskim - nivoa mrežnim stvarima kao da pregovaraju o priključivanju, rukovanju ledenim kandidatima i osiguravajući pouzdan prijenos podataka. RTCDatachanel se koristi za slanje i primanje proizvoljnih podataka, poput tekstualnih poruka ili datoteka.
Zašto koristiti kuke za Webtc u reagiranju?
Kuke u reagiranju su igra - mjenjač. Obaveštavaju vam da koristite državne i druge reakcije značajke bez pisanja klase. Kada je u pitanju Webtc u react, kuke mogu pojednostaviti kôd, činiti ga modularnim i lakšim za testiranje. Sa kukama možete upravljati složenim stanjem Webtc veze, poput stanja vršnjačke veze, medija i kanala podataka, na organizirani način.
Postavljanje projekta reakcije
Prvo prvo stvari, morate postaviti novi reaktor projekat. Možete koristiti Create React aplikaciju za brzo pokretanje novog projekta. Otvorite svoj terminal i pokrenite sljedeću naredbu:
NPX Kreiraj - React - App Webrtc - Kuka - Primjer CD WEBRTC - Kuka - Primjer
To će stvoriti novi projekat reakcije u imeniku zvanWEBRTC - kuka - primjeri krenite u te direktorij.
Stvaranje prilagođenih kuka za Webtc
Sada, krenimo stvaranje nekih prilagođenih kuka za Webtc. Prva kuka koju ćemo stvoriti je za pristup korisničkom medijskom toku.
uvozi {useState, uporaba efect} s'react '; constsemediastream = () => {const [stream, setstream] = usestate (null); Const [Greška, SetError] = UseState (null); Upotreba => {const getmediastream = async () => {probaj {const newtream = waut navigator.mediadevices.getsermedia (video: True, audio: true}; intream);} ulov (err);}};}}, [];}, [];}; Vratite {stream, grešku}; }; Izvoz zadano UseMediaStream;
U ovoj kuci koristimoUSSTATEKuka za upravljanje medijskim tokom i bilo kakvim potencijalnim greškama. TheUpotrebaKuka se koristi za pokretanje koda koji zahtijeva korisnički medijski tok. Trči samo jednom kada se komponenta montira zbog prazne polje za ovisnost.
Dalje, stvorimo kuku za upravljanje RTCPeerConnection-om.
uvozi {useState, uporaba efect} s'react '; Const USEPeerconnection = () => {const [Peerconnection, SetpeerConnection] = Usestate (null); Const [Greška, SetError] = UseState (null); korištenje => {cong createepEerconnection = () => {probaj {const newpeerconnection = nova RTCPeerConnection (); setpeerconnection (newpeerconnection);} ulov (err) {setError (err);};}, []); povratak {peerconnection, error}; }; Izvozna zadana upotrebaPeerConnection;
Ova kuka stvara novu RTCPeerConnection kada se komponenta montira i upravlja stanjem vršnjačke veze i bilo kakve pogreške koje se mogu pojaviti.


Koristeći kuke u komponenti
Sad kad imamo naše prilagođene kuke, da ih koristimo u react komponentu.
uvoz reakcija s'react '; uvoz useMediaStream iz './usemediastream'; uvoz upecepeerconnection iz './usepeerconection'; const webrtccomponent = () => {const {stream, greška: streamError} = useMediastream (); Const {PeerConnekcija, greška: Peererror} = USEPeerConnection (); Ako (StreamError) {Return <Div> Pogreška pristupanjem medijskom toku: {streamError.message} </ div>; } Ako (PeerError) {Return <Div> Greška stvaranje vršnjačke veze: {peererror.message} </ div>; } ako (potok) {povratak (<div> <Video srcobject = {stream} autoplay reprodukcijuInline /> </ div>); } povratak <div> učitavanje ... </ div>; }; Izvozni zadani webrtcComponent;
U ovoj komponenti uvozimo i koristimo naše prilagođene kuke. Prikazujemo poruku o pogrešci ako postoji problem s pristupom medijskom toku ili stvaranju vršnjačke veze. Ako je medijski tok dostupan, prikazujemo video element s potokom kao njegovom izvoru.
Napredna upotreba: kanali podataka sa kukama
Uzmimo korak dalje i stvorimo kuku za upravljanje RTCDatachanelom.
uvozi {useState, uporaba efect} s'react '; consfictatatachannel = (PeerConnection) => {const [Datachanel, setdatachannel] = UseState (null); Const [poruka, setmessage] = usestate (''); Upotreba () => {ii (PeerConnection) {ConstNection.cReatAchanel ('chat'); setdatachannel (Newdatachannel); Newdatachanel.onmessage = (događaj) => {setmesage);};}}, [PeerConnection]; Povratak {Datachanel, poruka}; }; Izvoz zadano UsedAtatachannel;
Ova kuka stvara novi kanal podataka na datu vršnjačku vezu i upravlja porukama primljenim na tom kanalu.
Integriranje naših kuka u potpunijeg primjera
Koristimo sve naše kuke u potpunijem primjeru gdje možemo slati i primati poruke preko podataka podataka.
uvoz reagira, {usestate} sa'react '; uvoz useMediaStream iz './usemediastream'; uvoz upecepeerconnection iz './usepeerconection'; uvozi Uvoz UseOtachanel iz './usetatachanel'; const webrtcFullexample = () => {const {stream, greška: streamError} = useMediastream (); Const {PeerConnekcija, greška: Peererror} = USEPeerConnection (); CONST {DATACHANNEL, MESSACT} = Useklatachanel (PeerConnekcija); Const [InputMessage, SetInPutMessage] = UseState (''); Const SendMessage = () => {if (Datachanel && Datachanel.ReadyState === 'Otvori') {Datachanel.send (inputMessage); SetInPutMessage (''); }}; Ako (StreamError) {Return <Div> Pogreška pristupanjem medijskom toku: {streamError.message} </ div>; } Ako (PeerError) {Return <Div> Greška stvaranje vršnjačke veze: {peererror.message} </ div>; } povratak (<div> {stream && <video autoplay playsinline />} <div> Primljena poruka: {inputssage} onchange = {eurtmessage} onchange = {(e.target.value)} /> <gumb onclick = {sendmessage}> Pošalji poruku </ tipku> </ div>); }; Izvozni zadani WebtcFullexample;
U ovom primjeru imamo video element koji prikazuje korisnički medijski tok, odjeljak za prikaz primljenih poruka, polja za unos za unos poruka i gumb za njihovo slanje.
Gde se naše kuke mogu uklopiti
Kao dobavljač kuka nudimo širok spektar kuka koji se mogu koristiti u raznim Wortc projektima. Na primjer, ako izgradite složeniju Wortc aplikaciju koja uključuje ugradnju komponente na pravokutnoj cijevi, možda ćete biti zainteresirani za našKuka za pravokutne cijevi. To je visokokvalitetna kuka koja se može koristiti za sigurno priložite komponente u vašem Worbtc Setup-u.
Ako radite na webrtc projektu za supermarket - srodnu primjenu, poput sistema upravljanja inventarom uživo na police za supermarkete, našePolica za polica supermarketamože biti savršeno uklapanje. Ove su kuke dizajnirane tako da budu izdržljive i jednostavne za instaliranje, osiguravajući da vaše Wortc komponente ostanu na mjestu.
Zamotavanje i posezanje
Korištenje kuka za Webtc u react-u može značajno pojednostaviti vaš kôd i učiniti vaše Wortc aplikacije koje se više događaju. Bez obzira da li ste početnik ili iskusni programer, ove prilagođene kuke mogu vam pomoći da izgradite neverovatne Wortc projekte.
Ako vas zanima naše kuke za vaše projekte Webtc, voljeli bismo razgovarati s vama. Kontaktirajte nas kako bismo razgovarali o svojim specifičnim zahtjevima i pogledali kako se naši kuke mogu uklopiti u vaše razvojne planove. Ovdje smo da vam podržimo svaki korak puta.
Reference
- MDN web dokumenti - webrtc
- Reagirajte službenu dokumentaciju
