I. PeerJS
๊ธฐ์ ์ ๊ณต๋ถํ๋ ์ฌ๋์ผ๋ก์ WebRTC๋ฅผ ์ง์ ๊ตฌํํ๊ธฐ์๋ ๋ฒ ์ฐฌ ๊ฐ์ด ์์ง ์์ ์๋ค. ์ต์ ๊ธฐ์ ์ด๊ธฐ๋ ํ๊ณ ๊ด๋ จ ๋ ํผ๋ฐ์ค๋ฟ ์๋๋ผ ํด์ธ ์๋ฃ ๋ํ ์ถฉ๋ถํ์ง ์๋ค. ๊ฐ๋จํ WebRTC๋ฅผ ์ง๊ณ ๋์ด๊ฐ์๋ฉด '์น์๋ฒ(์ค๊ฐ์) ์์ด ๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ'ํ๋ API๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ฝ๋ก๋ ์ฌํ๋ก ๋ธ๋ผ์ฐ์ ์์ ์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ด ํ์ํด์ง๊ฒ ๋จ์ ๋ฐ๋ผ ์ฐ์ด๊ฒ ๋ ๊ธฐ์ ์ด๋ค.
PeerJS๋ WebRTC๋ฅผ ํธํ๊ฒ ์ด์ฉํ ์ ์๊ฒ๋ ์ ์๋ ๊ฐ๋จํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
๊ฐ๋จํ๊ฒ CDN์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์๋ค.
๊ณต์ ๋ฌธ์๊ฐ ์น์ ํ๊ฑด ์๋์ง๋ง P2P ๋ํ ์ถฉ๋ถํ ์ดํด๋์ ์ง๊น๊ธฐ ํ ์ ์๋ ๋ฅ๋ ฅ(?) ์ด ์๋ค๋ฉด ์ด๋ ต์ง ์๊ฒ ๊ตฌํํ ์ ์๋ค. API ๋ ํผ๋ฐ์ค๋ ์๋ ๋งํฌ์์ ์ฐพ์๋ณผ ์ ์๋ค.
https://peerjs.com/docs.html#api
II. ์์ฒด ํผ์ด์๋ฒ
๋ ํ ๊ฐ์ง ์น์ ํ ์ ์ ํผ์ด ์๋ฒ๋ฅผ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๋ค๋ ์ ์ด๋ค. ๋ฌผ๋ก ํ๋ก๋์ ์ผ๋ก๋ ๋ถ์ ํฉ ํ์ง๋ง ๊ฐ๋ฐ์ฉ์ผ๋ก ์ถฉ๋ถํ ์ฌ์ฉํ ์ ์๋ค. ๋ง์ฝ ์์ฒด ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ๋ค๋ฉด, ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.
https://github.com/peers/peerjs-server
III. ํด ์๋ฒ
WebRTC์ ๊ฒฝ์ฐ ๋ณ๋์ ํด ์๋ฒ ์์ด๋ ๋ก์ปฌ ํธ์คํธ ์ธ์ ์ธ๋ถ ํด๋ผ์ด์ธํธ์ ํต์ ํ ์ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ TURN, STUN ์๋ฒ๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋๋ฐ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ํ ์ ์๋ค.
var peer = new Peer({
config: {'iceServers': [
{ url: 'stun:stun.l.google.com:19302' },
{ url: 'turn:homeo@turn.bistri.com:80', credential: 'homeo' }
]} /* Sample servers, please use appropriate ones */
});
'๐ป๊ธฐ์ > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ ๊ฐ๋ฐ์๋ฅผ ์ํ JavaScript ๊ธฐ์ด ๋ฉด์ ์ง๋ฌธ (2024๋ ) (31) | 2024.02.28 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ค ์ ์๋ ํ๋ก์ ํธ ๋ชจ์ (0) | 2023.03.01 |
[ ThreeJS ] OBJLoader object ์์น ์ด๋ (0) | 2022.04.21 |
[ NodeJS ] javascript-obfuscator ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ ํ (0) | 2021.12.24 |
[ Javascript ] Solvedac API๋ก ๋ฐฑ์ค ์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ (1) | 2021.09.29 |