TURN 서버

동일한 로컬 네트워크에 있지 않으면 클라이언트 간에 직접 소켓이 불가능한 경우가 많기 때문에 대부분의 WebRTC 애플리케이션이 피어 간 트래픽을 릴레이하는 데 필요합니다. 이 문제를 해결하는 일반적인 방법은 TURN 서버를 사용하는 것입니다. NAT 주위에 'Relay를 사용하는 순회'라는 용어는 네트워크 트래픽을 릴레이하기 위한 프로토콜입니다.

현재 온라인으로 제공되는 TURN 서버는 자체 호스팅 애플리케이션 (예: 오픈소스 COTURN 프로젝트)과 클라우드 제공 서비스 모두 사용할 수 있습니다.

TURN 서버를 온라인으로 사용할 수 있게 되면 클라이언트 애플리케이션이 이를 사용할 수 있는 올바른 RTCConfiguration만 있으면 됩니다. 다음 코드 스니펫은 TURN 서버의 호스트 이름이 my-turn-server.mycompany.com이고 포트 19403에서 실행 중인 RTCPeerConnection의 샘플 구성을 보여줍니다. 구성 객체는 서버 액세스 권한을 보호하기 위한 usernamecredential 속성도 지원합니다. TURN 서버에 연결할 때 필요합니다.

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);