대부분의 WebRTC 애플리케이션이 작동하려면 피어 간에 트래픽을 릴레이하는 데 서버가 필요합니다. 클라이언트가 동일한 로컬 네트워크에 있지 않는 한 클라이언트 간에 직접 소켓을 사용할 수 없는 경우가 많기 때문입니다. 이를 해결하는 일반적인 방법은 TURN 서버를 사용하는 것입니다. 이 용어는 NAT 주위에서 릴레이를 사용하는 횡단을 의미하며 네트워크 트래픽을 릴레이하는 프로토콜입니다.
현재 온라인에서 자체 호스팅 애플리케이션 (예: 오픈소스 COTURN 프로젝트)과 클라우드 제공 서비스로 제공되는 여러 TURN 서버 옵션을 사용할 수 있습니다.
온라인에서 TURN 서버를 사용할 수 있게 되면 클라이언트 애플리케이션에서 이를 사용할 수 있는 올바른 RTCConfiguration
만 있으면 됩니다. 다음 코드 스니펫은 TURN 서버의 호스트 이름이 my-turn-server.mycompany.com
이고 19403
포트에서 실행 중인 RTCPeerConnection
의 샘플 구성을 보여줍니다. 구성 객체는 서버에 대한 액세스를 보호하기 위한 username
및 credential
속성도 지원합니다. TURN 서버에 연결할 때 필요합니다.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credential: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);