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가지 과정

  1. getUserMedia() 호출 후 RTCConnection 생성하고 로컬 스트리밍을 추가한다.
  2. 네트워크 정보 가져오기 및 공유 : 잠재적인 연결 끝점을 ICE 후보라고 한다.
  3. 로컬 및 원격 설명가져오기 및 공유 : SDP 형식 로컬 미디어 대한 메타데이터 (미디어 구성 정보 : 해상도 및 코덱 기능)

참고

https://codelabs.developers.google.com/codelabs/webrtc-web/#0

질문

Q :

모바일 Chrome으로 WebRTC 접속 시 화면이 잠기더라도 계속 연결을 유지할 수 있나요?

A :

iOS WebRTC CallKit 사용자 모두 잠금해제 해야 오디오가 활성화 된다.
링크