- Published on
WebRTC relay로만 동작하도록 변경하기
1. WebRTC relay로만 동작하도록 변경하는 이유
-
기본적으로 candidate들을 통한 p2p 직접연결 시도를 먼저 시도해보고 실패하였을 때, TURN서버를 통한 relay 통신을 하게된다.
-
이 때 직접 연결이 실패하게 되면, 앞에서 연결시도를 여러 번 하였으므로 relay를 통한 webRTC 연결성공까지 시간이 오래 걸린다.
-
그래서 모든 경우에 대해 연결시간을 줄이기 위해서 아예 처음부터 바로 relay 연결시도만 하도록 수정할 수 있다.
2. ice Transport Policy 수정
- peerConnectionConfig에서 iceTransportPolicy: 'relay' 를 추가한다.
configValue = {
peerConnectionConfig: {
iceServers: [
// {"url": "stun:23.21.150.121"},
// {"url": "stun:stun.l.google.com:19302"},
],
iceTransportPolicy: 'relay',
},
peerConnectionConstraints: {
optional: [{ DtlsSrtpKeyAgreement: true }],
},
};
- peerConnectionConfig 의 iceServers 설정에서 STUN 서버는 모두 빼고 TURN 서버만 넣는다.
configValue.peerConnectionConfig.iceServers = [];
var i, len;
if (message.stunserver) {
// for (i = 0, len = message.stunserver.length; i < len; i+=1) {
// configValue.peerConnectionConfig.iceServers.push(message.stunserver[i]);
// }
}
if (message.turnserver) {
for (i = 0, len = message.turnserver.length; i < len; i += 1) {
configValue.peerConnectionConfig.iceServers.push(message.turnserver[i]);
}
}