์ ๋ ์ด webRTC๋ฅผ ์ฒ์ ์ ํ์ต๋๋ค. ๋ ์คํธ๋ฆผ ์ฌ์ด์ ์ฐ๊ฒฐ์ ๋ง๋ค์์ต๋๋ค. ์๋ํ์ง๋ง ๋ฏธ๋์ด ์คํธ๋ฆผ์ ์ ์กํ ๋ ์ด ์ค๋ฅ ICE๊ฐ ์คํจํ๋ฉด STUN ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ ์์ธํ ๋ด์ฉ์ about:webrtc ๋ฅผ ์ฐธ์กฐํ์ธ์. ๋๋ ์ด๋ ๊ฒ ์๋ํ๋ค
ํผ์ด = ์๋ก์ด ํผ์ด(ID, {
๋๋ฒ๊ทธ: 2,
๊ตฌ์ฑ: {'iceServers': [
{ url: ' stun:stun.l.google.com :19302' },
{ url: ' stun:stun1.l.google.com :19302' },
]}
ํ์ง๋ง ์ฌ์ ํ ์ด ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค. ์ด์ ๋ํ ์ ํํ ํด๊ฒฐ์ฑ ์ ๋ฌด์์ ๋๊น? @kidandcat
์ฃ์กํฉ๋๋ค. ๋ฌธ์์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํฉ๋๋ค. ice ์๋ฒ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
{'iceServers': [{ 'urls': ' stun:stun.l.google.com :19302' }]};
๊ด์ฐฎ์. ๋ฌด๋ฃ ์คํด ๋ฐ ํด ์๋ฒ๊ฐ ์๋์ง ์๋๋ฉด ์ด ์๋ฒ๋ฅผ ๊ตฌ์ ํด์ผ ํฉ๋๊น? @kidandcat
์์ํ๋ ๋ฐ๋ง ์ฌ์ฉ๋๋ ๋ฌด๋ฃ STUN ์๋ฒ๊ฐ ๋ง์ด ์์ต๋๋ค.
์ฐ๊ฒฐ(๋์ ๋ฆฌ์์ค๊ฐ ํ์ํ์ง ์์)์ด์ง๋ง TURN์ด ์์ต๋๋ค.
P2P ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์์ผ๋ฉด ์๋ฒ๊ฐ ๋ฌด๋ฃ์ด๋ฏ๋ก
๋์ฒด๋ ๋ชจ๋ ํต์ ์ด TURN ์๋ฒ๋ฅผ ํต๊ณผํ๋ฏ๋ก
๋์ ๋ฆฌ์์ค์ ๋์ญํญ์ด ํ์ํฉ๋๋ค.
์ 3์ 27์ผ 2018๋ 7:08, RamyaAshika [email protected] ๋ฌธ์:
๊ด์ฐฎ์. ๋ฌด๋ฃ ๊ธฐ์ ๋ฐ ํด ์๋ฒ๊ฐ ์๋์ง ์ฌ๋ถ
์ด ์๋ฒ๋ฅผ ๊ตฌ๋งคํด์ผ ํฉ๋๊น? @kidandcat https://github.com/kidandcatโ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/peers/peerjs/issues/470#issuecomment-441937144 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/ADrV0qWA1WciYRt65jrYBhB_0b8k8WA1ks5uzNblgaJpZM4YzF3r
.
์ค, TURN ์๋ฒ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ ์ ์๋์? ๋ํ ๋ด๊ฐ ๋ค๋ฅธ ๋ฌด์ ๋คํธ์ํฌ์ ์๋ ๊ฒฝ์ฐ @kidandcat์์ 3-5๋ถ ํ์ ์ฐ๊ฒฐ์ด ๋์ด
๋ค, ๋ฌผ๋ก ์
๋๋ค.
๊ทธ๋ฌ๋ p2p๊ฐ ์์ ํ ์ข
๋ฃ๋๋ ์ด์ํ ๋คํธ์ํฌ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ
๋ถ๊ฐ๋ฅํ๋ฉด TURN์ผ๋ก์ ํด๋ฐฑ์ด ์๊ณ ์ฐ๊ฒฐ์ด ์คํจํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๊ฒฝ์ฐ๋ ์ผ๋ฐ์ ์ด์ง ์์ต๋๋ค. STUN ์๋ฒ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ผ์์์ค,
์์ด๋ก ์นด๋ก-์์น๋
ธ ๋น์น์๋.
์ 3์ 27์ผ 2018๋
11์ 00๋ถ, RamyaAshika ( [email protected] )
๊ธฐ๋ก:
์ค, TURN ์๋ฒ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ ์ ์๋์? @kidandcat
https://github.com/kidandcatโ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/peers/peerjs/issues/470#issuecomment-441998795 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/ADrV0tpMsIoIJqHgM25BSr_9HX4pCgyVks5uzQ0-gaJpZM4YzF3r
.
์ข์, ์ด๊ฒ์ ๋ด๊ฐ ์ฌ์ฉํ๋ ์คํ ์์ค์ ๋๋ค. { urls: ' stun:stun1.l.google.com :19302' } ํ์ง๋ง ๊ฐ๋ ICE๊ฐ ์คํจํ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. STUN ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ about:webrtc๋ฅผ ์ฐธ์กฐํ์ธ์ @kidandcat
๊ณ ์ณค๋ค. @kidandcat ๊ฐ์ฌ
@RamyaAshika ์ด๋ป๊ฒ
ํด๋ดค๋๋ฐ ๊ทธ ์์ฒด๋ก ๋ฌธ์ ๊ฐ ๋ง์ต๋๋ค. COTURN์ STUN ๋ฐ TURN ์๋ฒ์ฉ ๋ฌด๋ฃ ์คํ ์์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์ต๋๋ค. @mballabaniapr
์๋ ํ์ธ์ @RamyaAshika coturn ์๋ฒ๋ ์ด๋ป๊ฒ ๋ฐฐํฌํ์ จ๋์? AWS์ ๋ฐฐํฌํ๋๋ฐ ๋ฆด๋ ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/๊ฐ ์๋ ค์ฃผ๋ ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ง๋ง webrtc ์ฐ๊ฒฐ์ ํธ์ถํ๋ฉด ์๋ํ์ง ์์ต๋๋ค. AWS์์ ํธ์คํ ๋๋ ๋ด ์น ์ฑ์์ ์๋ฒ๋ฅผ ์ผ๊ณ ์ผ์ ํ๋ณด๋ฅผ ์ป๊ณ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ICE ์คํจ, STUN ์๋ฒ ์ถ๊ฐ ๋ฐ ์์ธํ ๋ด์ฉ ์
์๋
ํ์ธ์ @RamyaAshika ,
๋๋ ๋๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉด ํด ์์ต๋๋ค. ์๋ฃจ์
์ ์์ธํ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
๊ฐ์ฌํฉ๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ง๋ง ํด๊ฒฐํ์ต๋๋ค.
https://gist.github.com/sagivo/3a4b2f2c7ac6e1b5267c2f1f59ac6c6b
๋น์ ์ ๊ธฐ์ + ํ์ ์ ์ ๊ณตํด์ผํฉ๋๋ค
"iceServers": [
{
"urls": "stun:vc.example.com:3478"
},
{
"urls": "turn:vc.example.com:3478",
"username": "coturnUser",
"credential": "coturnUserPassword"
}
],
"iceTransportPolicy": "relay"
๋ฅผ ์ง์ ํ์ฌ ๋ฆด๋ ์ด ์๋ฒ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค(p2p ์ ์ธ).
@afrokick ์ด ์ฝ๋๋ ์ด๋์ ์์ฑ๋์๋์? ์ ๋ Java API ๊ฐ๋ฐ์ ์ฌ์ฉํฉ๋๋ค.
๋๋ ๋ํ LAN์ ์ธํฐ๋ท(WAN)์ ํตํด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
https://github.com/coturn/coturn coturn์ผ๋ก ์๋ํด ๋ณด๊ฒ ์ต๋๋ค...
LAN์ด ์๋ ์ธํฐ๋ท์ ํตํด ํต์ ํ๊ธฐ ์ํด ๋ค์ ์ค์ ์ ์ฌ์ฉํฉ๋๋ค.
var fs = require('fs');
var PeerServer = require('peer').PeerServer;
var server = PeerServer({
port: 3001,
debug: true,
path: '/peerjs',
ssl: {
key: fs.readFileSync('privkey.pem', 'utf8'),
cert: fs.readFileSync('fullchain.pem', 'utf8')
},
config: {"iceServers": [
{
"iceTransportPolicy": "relay",
"urls": "stun:62.138.7.233:3478"
},
{
"iceTransportPolicy": "relay",
"urls": "turn:62.138.7.233:3478",
"username": "ninefingers",
"credential": "youhavetoberealistic"
}
],
}
});
๋ด coturn ์๋ฒ: turnserver -L 62.138.7.233 -a -f -r north.gov
coturn์ ์ถ๋ ฅ:
0: ๋๋ฉ์ธ ์ด๋ฆ:
0: ๊ธฐ๋ณธ ์์ญ: north.gov
0: ์ค๋ฅ:
๊ตฌ์ฑ ์ค๋ฅ: cli-password๊ฐ ๋น์ด ์์ผ๋ฏ๋ก telnet cli ์ธํฐํ์ด์ค๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค! ๋น์ด ์์ง ์์ cli-password๋ฅผ ์ค์ ํ์ญ์์ค!
0: ๊ฒฝ๊ณ : ์ธ์ฆ์ ํ์ผ์ ์ฐพ์ ์ ์์: turn_server_cert.pem(1)
0: ๊ฒฝ๊ณ : ์ธ์ฆ์ ํ์ผ์ด ์ ๋๋ก ์ค์ ๋์ง ์์๊ธฐ ๋๋ฌธ์ TLS ๋ฐ DTLS ์์ ๊ธฐ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
0: ๊ฒฝ๊ณ : ๊ฐ์ธ ํค ํ์ผ์ ์ฐพ์ ์ ์์: turn_server_pkey.pem(1)
0: ๊ฒฝ๊ณ : ๊ฐ์ธ ํค ํ์ผ์ด ์ ๋๋ก ์ค์ ๋์ง ์์๊ธฐ ๋๋ฌธ์ TLS ๋ฐ DTLS ์์ ๊ธฐ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
0: ์ฌ์ฉํ ๋ฆด๋ ์ด ์ฃผ์: 62.138.7.233
....
TLS๊ฐ ํ์ํฉ๋๊น?
์ ์ ํ ์๋ฃจ์ ์ด ์ ์๋์ง ์์๋๋ฐ ์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํด๋ดค๋๋ฐ ๊ทธ ์์ฒด๋ก ๋ฌธ์ ๊ฐ ๋ง์ต๋๋ค. COTURN์ STUN ๋ฐ TURN ์๋ฒ์ฉ ๋ฌด๋ฃ ์คํ ์์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์ต๋๋ค. @mballabaniapr