๐ WebRTC๋??
- ๋ธ๋ผ์ฐ์ ์์ ๋ณ๋์ ์ํํธ์จ์ด ์์ด ์ค์๊ฐ์ผ๋ก ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์น์ ์ํ ์คํ ํ๋ ์์ํฌ์ด๋ค.
- ๋น๋์ค์ ์์ฑ ์ฑํ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ ์ค๋์ค์ ๋น๋์ค์ ๊ฐ์ด ๋์ ํ๋ฆฌํฐ์ ์์ฌ์ํต์ ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ฒ๋ค์ ํฌํจํ๋ค.
- ๋ณดํต ๋ธ๋ผ์ฐ์ ์์ ์คํํ ๋ JavaScript API๋ฅผ ํตํด ์คํํ ์ ์์ด ๊ฐ๋ฐ์๋ค๋ก ํ์ฌ๊ธ ์ฝ๊ฒ RTC web app์ ์คํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- ๋ํ WebRTC๋ W3C์ IETF์์ API๋ ๋ฒจ๊ณผ Protocol ๋ ๋ฒจ์ ํ์คํํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค ์ธ๊ณ ์ต๊ณ IT๊ธฐ์ ์ธ Google๊ณผ Mozila, Opera์์ ๋ ๋ ํ๊ฒ ์ง์์ ํด์ค๋ค.
๐ง WebRTC๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ ๊น?
ํ๋ฒ WebRTC API๋ฅผ ์ดํด๋ณด์
๐ getUserMedia
์ฌ์ฉ์๊ฐ ์์ ์ ๋๋ฐ์ด์ค๋ฅผ ์คํธ๋ฆผ์ ํ ์ ์๋๋ก ํ๊ฐ๋ฅผ ๋ฐ๋ API
navigator.mediaDevices.getUserMedia(StreamConstraints).then(function(stream) {
localStream = stream;
localVideo.srcObject = stream;
}
๐ RTCPeerConnection
local Media Stream์ผ๋ก P2P connection์ ํตํด RTC object๋ฅผ ๋ณด๋ผ ์ ์๊ฒ ํด์ค๋ค ( ์๋๋ฐฉ์๊ฒ ์์ฑ๊ณผ ์์์ ๊ณต์ )
RTCPeerConnection์ ํตํด ์ฌ์ฉ์๊ฐ์ ์ด๋ ํ ๋ฐฉ์์ผ๋ก ํต์ ์ผ ๋ ๊น??
์๋๋ ์ ๋ช ํ ์๋ฆฌ์ค์ ์ด๋ธ์ ์ด์ผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์ ์ค๋ช ํ ๊ธ์ด๋ค
-
์จ๋ฆฌ์ค๊ฐ RTCPeerConnection ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
-
์จ๋ฆฌ์ค๊ฐ *createOffer()* ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์(SDP Session Description)์ ์์ฑํฉ๋๋ค.
-
์จ๋ฆฌ์ค๊ฐ ์ ์๊ณผ ํจ๊ป *setLocalDescription()*๋ฅผ ํธ์ถํฉ๋๋ค.
-
์จ๋ฆฌ์ค๋ ์ ์์ ๋ฌธ์์ดํํ๊ณ ์๊ทธ๋๋ง ๋ฉ์ปค๋์ฆ์ ์ด์ฉํ์ฌ ์ด๋ธ์๊ฒ ๋ณด๋ ๋๋ค.
-
์ด๋ธ๋ ์จ๋ฆฌ์ค์ ์ ์์ ๊ฐ์ง๊ณ *setRemoteDescription()*๋ฅผ ํธ์ถํ์์ผ๋ฏ๋ก ๊ทธ๋ ์ RTCPeerConnection๊ฐ ์จ๋ฆฌ์ค์ ์ค์ ์ ์๊ฒ๋ฉ๋๋ค.
-
์ด๋ธ๋ em>createAnswer()๋ฅผ ํธ์ถํ๊ณ ์ด์ ๋ํด ๋ก์ปฌ ์ธ์ ์ ๋ณด(Local Session Description), ์ฆ ์ด๋ธ์ **์๋ต**์ ์ธ์๋ก ์ ๋ฌํ๋ ์ฑ๊ณต ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
-
์ด๋ธ๋ *setLocalDescription()*์ ํธ์ถ์ ํตํด ๊ทธ๋ ์ ์๋ต์ ๋ก์ปฌ ๊ธฐ์ (Description)์ผ๋ก ์ค์ ํฉ๋๋ค.
-
๊ทธ๋ฆฌ๊ณ ๋์ ์ด๋ธ๋ ์๊ทธ๋๋ง ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ทธ๋ ์ ๋ฌธ์์ดํ๋ ์๋ต์ ์จ๋ฆฌ์ค์๊ฒ ๋ค์ ์ ์กํฉ๋๋ค.
-
์จ๋ฆฌ์ค๋ *setRemoteDescription()*์ ์ฌ์ฉํ์ฌ ์ด๋ธ์ ์๋ต์ ์๊ฒฉ ์ธ์ ๊ธฐ์ (Description)์ผ๋ก ์ค์ ํฉ๋๋ค.
์ฐธ๊ณ : www.html5rocks.com/ko/tutorials/webrtc/infrastructure/
๐ Data Channel
WebRTC์์ Audio, Video๋ง์ด ๋์์ด ์๋๋ค. ๋ชจ๋ ์ ํ์ ๋ฐ์ดํฐ๋ ๋ณด๋ผ ์ ์๊ฒ ํด์ฃผ๋ API
๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ์๋์ ๊ฐ๋ค
WebRTC๋ ๋ธ๋ผ์ฐ์ ์์ ํต์ ์ด ๊ฐ๋ฅํ๋ฐ, ๋คํํ ํ์ฌ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์ WebRTC ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
WebRTC๋ฅผ ์ํด์๋ ์๋ฒ ์ญ์ ์ค์ํ๋ฐ, Signalling Server, STUN, TURN, Media Server๊ฐ ํ์ํ๋ค.
์์ผ๋ก WebRTC๋ฅผ ์ํ ์๋ฒ์ ๋ํด ์์๋ณผ ๊ฒ์ด๋ค.
์ฐธ๊ณ : https://www.youtube.com/watch?v=YWjfs4aWKMc
๊ถ๊ธํ์ ๊ฒ์ด ์๊ฑฐ๋ ์๋ชป๋๊ฒ ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋๊ธ ๋ฌ์์ฃผ์ธ์!
'WebRTC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[WebRTC] TURN ์๋ฒ์ ํ์์ฑ (2) | 2021.02.08 |
---|---|
[WebRTC] Signaling Server ( ์๊ทธ๋๋ง ์๋ฒ ) (0) | 2020.12.22 |