Peerjs: ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ฃฝ์—ˆ์Šต๋‹ˆ๊นŒ? ๊ถŒ์žฅ๋˜๋Š” ๋Œ€์ฒด ์„œ๋น„์Šค๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2015๋…„ 11์›” 29์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: peers/peerjs

๋งํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. CDN ๋งํฌ๊ฐ€ ๋ชจ๋‘ ์ฃฝ์—ˆ๊ณ  ์˜ค๋žซ๋™์•ˆ ์ฃฝ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์˜ˆ์ œ๋Š” 404์ด๋ฉฐ ์™ธ๋ถ€ ํ˜ธ์ŠคํŒ… ์˜ˆ์ œ๋Š” CDN์œผ๋กœ ์ธํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. peer.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‚ด peer.on ์ฝœ๋ฐฑ์„ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์›น ์š”์ฒญ์„ ํ•˜์ง€ ์•Š์Œ). peerjs๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๋™๋“ฑํ•œ ์„œ๋น„์Šค๋ฅผ ์ฐพ์•„์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์‹œ๊ฐ„์€ ํ˜๋Ÿฌ๊ฐ‘๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

ํ”„๋กœ์ ํŠธ๋Š” ์ฃฝ์ง€ ์•Š์•˜๋‹ค)

์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ typescript๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์˜ค๋ž˜๋œ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋˜์‚ด๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

๋ชจ๋“  6 ๋Œ“๊ธ€

@jameshfisher ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํฌ๋กฌ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ถœ์ฒ˜์—์„œ getUserMedia๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ํŒŒ์ด์–ด ํญ์Šค์™€ ํฌ๋กฌ์€ shim์„ ๊ตฌ์„ฑํ•œ ๋ฐฉ์‹์œผ๋กœ getUserMedia ํ˜ธ์ถœ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•œ ๋Œ€์•ˆ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

function webrtc(onMedia,onError)
{
    function notSupported(){};

    var which = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || notSupported).name;

    var args = {video: true, audio: true};

    if(which !== 'notSupported'){
        navigator[which](args,onMedia,onError);
    }else{
        onError('webrtc not supported');
    }
}

onMedia ๋ฐ onError ์ฝœ๋ฐฑ์„ ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์‰ฌ์šด ๋งํ•  peasy.

์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹œ๋„ํ•œ ํ›„ Simple-peer ๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ๋Œ€์•ˆ์ด๋ฉฐ ์—ฌ๋Ÿฌ ์ƒˆ๋กœ์šด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋ฉฐ ํฌ๊ธฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์–‘ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜๋Š” ๋Œ€์‹  getusermedia ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์‹œ๊ฐ„์€ ํ˜๋Ÿฌ๊ฐ‘๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์‹œ๊ฐ„์€ ํ˜๋Ÿฌ๊ฐ‘๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

ํ”„๋กœ์ ํŠธ๋Š” ์ฃฝ์ง€ ์•Š์•˜๋‹ค)

์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ typescript๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์˜ค๋ž˜๋œ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋˜์‚ด๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

@afrokick ํ”„๋กœ์ ํŠธ ์ƒํ™ฉ์„

. ะ–ะธะฒะต ะ‘ะตะปะฐั€ัƒััŒ!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰