๐Ÿ“”๊ฐœ๋ฐœ ์ผ๊ธฐ

[ํ•ญํ•ด99 - 11์ฃผ์ฐจ] ์‹ค์ „ํ”„๋กœ์ ํŠธ 3 (webRTC - openvidu)

IOTrue 2023. 2. 20. 00:10

โš“ ํ•ญํ•ด99 - 11์ฃผ์ฐจ ํšŒ๊ณ ๋ก (์‹ค์ „ํ”„๋กœ์ ํŠธ 3)

 

intro

์–ด์ œ, ๊ธฐ์ˆ  ๋งค๋‹ˆ์ €๋‹˜์˜ ์ค‘๊ฐ„ ์ ๊ฒ€์ด ์žˆ์—ˆ๋‹ค.

์šฐ๋ฆฌ ์กฐ๋Š” ์ ์€ ์ธ์›์ธ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ง„ํ–‰์†๋„๊ฐ€ ์ œ์ผ ๋น ๋ฅด๋‹ค๊ณ  ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค. ๐Ÿ˜Ž

์šฐ๋ฆฌ ์กฐ ์ตœ๊ณ !๋ฅผ ์™ธ์น˜๋ฉฐ ํšŒ๊ณ ๋ก์„ ์‹œ์ž‘ํ•ด๋ณธ๋‹ค.

 

start

์ด๋ฒˆ ์ฃผ๋Š” openvidu๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ™”์ƒ์ฑ„ํŒ… ๋ฐฉ ๊ตฌํ˜„์„ ์™„๋ฃŒํ–ˆ๊ณ ,

์ถ”๊ฐ€๋กœ ๋ฐฉ ์ƒ์„ฑ, ๋ฐฉ ๋ชฉ๋ก, ๋ฐฉ ์ž…์žฅ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์„œ๋ฒ„์˜ ๋น ๋ฅธ open๊ณผ ๋น ๋ฅด๊ฒŒ ๋‚˜์˜จ api๋“ค ๋•๋ถ„์ด๋‹ค! (๋ฐฑ์—”๋“œ๋‹˜๋“ค ์ตœ๊ณ !)

 

๊ธฐ์กด openvidu ์ฝ”๋“œ๋Š” ๋ฐฉ ๋ชฉ๋ก๊ณผ ์ž…์žฅํ•ด์„œ์˜ ์ฑ„ํŒ…๋ฐฉ ํŽ˜์ด์ง€๊ฐ€

๋ฐฉ์— ์ž…์žฅ์ด ๋๋‹ค๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ UI๋งŒ ๋ฐ”๋€Œ๋Š” ๊ตฌ์กฐ์˜€๋Š”๋ฐ

์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” [๋ฐฉ ์ƒ์„ฑ ํŽ˜์ด์ง€ -> ์ฑ„ํŒ…๋ฐฉ ํŽ˜์ด์ง€] ๋˜๋Š” [๋ฐฉ ๋ชฉ๋ก ํŽ˜์ด์ง€ -> ์ฑ„ํŒ…๋ฐฉ ํŽ˜์ด์ง€]

์ด๋ ‡๊ฒŒ ํŽ˜์ด์ง€๊ฐ€ ์ด๋™ ๋˜์–ด์•ผํ•˜๋Š” ๊ตฌ์กฐ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ ์„œ๋น„์Šค์— ๋งž๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ๋‹ค. 

 

์ด ๊ณผ์ •์—์„œ [๋ฐฉ์žฅ : ๋ฐฉ ์ƒ์„ฑ -> ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ] ๊ทธ๋ฆฌ๊ณ  [์ฐธ์—ฌ์ž: ๋ฐฉ ๋ชฉ๋ก -> ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ]์ด๋ผ๋Š”

2๊ฐœ์˜ ๋ฐฉ ์ž…์žฅ ๋กœ์ง์ด ํ•„์š”ํ–ˆ๊ธฐ์— ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ 2๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

ChatRoom ์ด๋ผ๋Š” ๊ณตํ†ต ๋ชจ๋“ˆ์— props๋ฅผ ์ „๋‹ฌ๋ฐ›๊ฒŒ ํ–ˆ๊ณ ,

ChatRoomMaster ์™€ ChatRoomSubscriber ๋ผ๋Š” ๊ณตํ†ต ๋ชจ๋“ˆ์„ ์ƒ์†๋ฐ›์€ ์ปดํฌ๋„ŒํŠธ 2๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์„œ

api ์‘๋‹ต ๊ฐ’์„ ๊ฐ๊ฐ ์ „๋‹ฌํ•˜๊ณ , ๋ฐฉ์žฅ์ธ์ง€ ์•„๋‹Œ์ง€ ์ƒํƒœ์— ๋”ฐ๋ผ ๋งž๊ฒŒ ์ž‘๋™๋˜๋Š” ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์ด ์–ด๋ ค์› ์ง€๋งŒ

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ๋”๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ตฌํ˜„์ด ๋๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ์˜ ์žฅ์ ์€, ์ฝ”๋“œ๊ฐ€ ์งง์•„์ง€๋‹ค๋ณด๋‹ˆ ๊ฐ€๋…์„ฑ๋„ ์ข‹์•„์ง„๋‹ค๋Š” ์ ์ด๋‹ค! ๐Ÿ•ต๏ธ‍โ™€๏ธ

 

์ด๋ ‡๊ฒŒ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ์„œ๋น„์Šค ๊ธฐ๋ณธ ๋กœ์ง์€ ๊ตฌํ˜„์ด ๋์œผ๋‹ˆ

์ด์ œ ์ถ”๊ฐ€ ๋””์ž์ธ์— ๋งž๋Š” UI ๊ฐœ๋ฐœ๊ณผ ํ™”๋ฉด ์บก์ณ, ์‹ค์‹œ๊ฐ„ ํŽ˜์ด์ง€ ๊ฒ€์ƒ‰, ์žฌ ์ •๋ ฌ,

์ƒˆ๋กœ๊ณ ์นจ ์‹œ webRTC ํ† ํฐ ์žฌ๊ฐฑ์‹ (๋ฐฑ์—”๋“œ์™€ ํ˜‘์—…์ด ํ•„์š”)๋“ฑ ๋””ํ…Œ์ผํ•œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ํ•ด์•ผํ•œ๋‹ค.

 

end

์•„์ง ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ, ์งง์€ ๊ธฐ๊ฐ„๋™์•ˆ ๋งŽ์ด ๋А๋‚€ ์ ์€

ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋””์ž์ด๋„ˆ์™€ ๋ฐฑ์—”๋“œ, ์–‘์ชฝ ๋ชจ๋‘ ์†Œํ†ต์„ ์ž˜ ํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

์ฆ‰, ์„œ๋น„์Šค์˜ ํ”„๋กœ์„ธ์Šค์™€ UI ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ๊นŒ์ง€ ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

ํ”„๋กœ์ ํŠธ 1์ฐจ ๋งˆ๋ฌด๋ฆฌ๊นŒ์ง€ ์ผ์ฃผ์ผ ๋‚จ์•˜๋‹ค.

์ผ์ฃผ์ผ๋™์•ˆ ๋นก์„ธ๊ฒŒ ๊ฐœ๋ฐœํ•ด์„œ ๊ผญ ์˜ˆ์˜๊ฒŒ ์™„์„ฑํ•ด๋ณด๊ฒ ๋‹ค!

 

 

์šฐ์™€! ํ–ˆ๋˜ ์ˆœ๊ฐ„