WebRTC( Web Real-Time Communication)
- 웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API
- 음성통화, 영상 통화 P2P 파일 공유 등으로 활용 가능
특징
- P2P 기술
- 낮은 지연률
- 각 기기가 서버의 도움 없이 연결되기 위해 이 연결을 도와주는 서버 (Signaling)이 필요
- Signaling : RTCPeerconnection 통신에 사용할 프로토콜, 채널, 미디어 코덱 및 형식, 데이터 전송 방법, 라우팅 정보와 NAT 통과 방법을 포함한 통신 규격을 교환하기 위해 두 장치의 제어 정보를 교환하는 과정
- P2P 연결이 불가능한 상황을 대비한 릴레이 서버 (TURN) 필요
주요 구성 요소 (JavaScript API)
- GetUserMedia : 오디오와 비디오 미디어를 가져온다.
- RTCPeerConnection : 피어간 오디오, 비디오 통신을 활성화 한다. 신호 처리, 코덱 관리, P2P 통신, 보안, 대역폭 관리를 수행한다.
- RTCDataChennel : 피어 간 양방향 임의 데이터 통신을 허용한다. 웹 소켓과 동일한 API를 사용하며 매우 낮은 지연률을 보인다.
- GetStats : 웹 어플리케이션에 WebRTC 세션에 관한 통계 집합의 검색을 허용한다.
WebRTC 구현 방식