본문 바로가기

웹표준/Connectivity

2. WebRTC (Real Time Communication)

WebRTC (Real Time Communication)란 웹 어플리케이션 및 사이트들이 별도의 소프트웨어 없이 음성, 영상 미디어, 텍스트 파일같은 데이터를 브라우저끼리 주고 받을 수 있게 만든 기술이다.

별도의 플러그인 없이 화상회의 및 데이터공유가 가능하다.

 

3가지 대표 API

1. MediaStream

사용자의 카메라와 마이크 같은 곳의 데이터 스트림에 접근합니다. 우리의 애플리케이션이 사용자의 음성, 영상 데이터를 채집해 올 때 자주 사용하게 됩니다.

 

2. RTCPeerConnection

암호화 및 대역폭 관리를 하는 기능을 가지고 있고, 오디오 또는 비디오 연결을 담당합니다. 애플리케이션이 채집한 음성 및 영상 데이터를 서로 주고 받는 채널을 추상화하였다고 생각하면 됩니다.

 

3. RTCDataChannel

음성 및 영상 데이터가 아닌, json/text 데이터들을 주고받는 채널을 추상화한 API 입니다.

 

WebRTC의 4단계

1. Feching : 상대 peer에게 보낼 사용자의 음성 및 영상 데이터를 수집

- MediaStream, getUserMedia를 이용해 정보를 수집

 

2. Signaling : 또 다른 peer의 정보를 탐색

- 안정적인 Signaling Server를 구축해야함

 

3. Connection : 발견한 peer와 p2p 커뮤니케이션을 맺고 channel을 개방해둠.

- 상대 피어의 정보가 등록된 RTCPeerConnection를 얻었다면 성공적인 연결.

 

4. Communication : 개방해놓은 채널을 통해 음성/영상/텍스트 데이터를 주고받음

- 데이터의 형태에 따라 아래와같이 나뉜다.

 

WebRTC과정중 데이터 타입에 따른 Communication 과정

 

'웹표준 > Connectivity' 카테고리의 다른 글

1. Web Sockets / 서버에서의 이벤트 수신  (0) 2020.04.09