WebRTC 개요
요구사항
- 크롬 47 이상
- 웹 서버
- HTML, CSS, JavaScript 지식
WebRTC JavaScript API
- getUserMedia() : 오디오 및 비디오 캡쳐
- MediaRecorder : 오디오 미치 비디오 녹화
- RTCPeerConnection : 사용자 간 오디오 및 비디오 스트리밍
- RTCDataChannel : 사용자 간 데이터 스트리밍
WebRTC 사용할 수 있는 곳
- Firefox
- Opera
- Android 기본 앱
- iOS 기본 앱
시그널이란?
WebRTC는 RTCPeerConnection 이용하여 브라우저 간 스트리밍 데이터 통신 하기 위해서 통신 조정 및 제어 메시지 보내기 위한 메커니즘
이 필요하다 이와 같은 과정을 시그널링
이라고 한다.
STUN과 TURN이란?
- WebRTC는 P2P로 설계되었다.
- WebRTC는 실제 네트워킹에 대처할 수 있다.
- 클라이언트는 NAT 게이트웨이 및 방화벽 통과가 필요하다 실패할 경우
WebRTC API는 STUN 서버를 사용하여 IP 주소를 가져온다.
- P2P 네트워킹은 직접 연결이 필요하다 실패할 경우
WebRTC API는 TURN 서버를 사용하여 릴레이 서버로 작동한다.
WebRTC 피어 간 호출 설정 3가지 과정
- getUserMedia() 호출 후 RTCConnection 생성하고 로컬 스트리밍을 추가한다.
- 네트워크 정보 가져오기 및 공유 : 잠재적인 연결 끝점을 ICE 후보라고 한다.
- 로컬 및 원격 설명가져오기 및 공유 : SDP 형식 로컬 미디어 대한 메타데이터 (미디어 구성 정보 : 해상도 및 코덱 기능)
참고
https://codelabs.developers.google.com/codelabs/webrtc-web/#0
질문
Q :
모바일 Chrome으로 WebRTC 접속 시 화면이 잠기더라도 계속 연결을 유지할 수 있나요?
A :
iOS WebRTC CallKit 사용자 모두 잠금해제 해야 오디오가 활성화 된다.
링크