WebRTC Signaling 프로세스 - 심화
Intro
내 최종 목표는 미디어 스트림을 오디오/비디오와 분리해서 그룹 call을 하는 것이 목표이다.
이전 WebRTC Signaling 프로세스 - 기초 기반으로 MDN DOCS 프로세스 흐름도를 분석하자
흐름도 원본은 너무 커서 잘라서 리뷰하겠습니다
Signaling Process
Naomi가 발신자, Priya가 수신자이다. 지금부터 왼쪽은 Naomi, 오른쪽은 Priya다
발신자 : Invite() - 수신자와 통신 준비
발신자는 가장 먼저 RTCPeerConnection을 생성한다.
RTCPeerConnection은 피어 간의 WebRTC 연결 인터페이스로써 연결 유지, 모니터링, 메소드 제공등을 한다.
getUserMedia()로 발신자 디바이스의 접근하여 스트림을 받아온다.
받아온 스트림은 RTCPeerConnection.addTrack()으로 RTCPeerConnection에 추가한다.
지금까지 RTCPeerConnection이 생성되었고, 해당 커넥션에는 유저의 미디어 스트림이 탑재되어 있다.
발신자 : handleNegotiationNeededEvent()
RTCPeerConnection.createOffer()로 SDP offer를 생성한다.
오디오와 비디오 option을 설정하고 SDP 포맷으로 offer를 만들어 내는거다.
RTCPeerConnection.setLocalDescription()으로 동시에 발신자의 description도 설정한다.
- 비동기로 작동하며, promise를 반환한다
- 연결이 이미 되어 있는데 해당 함수가 호출 되면, 재협상 중이란 뜻이다.
- 로컬에서 생성된 미디어 스트림의 정보를 상대방과 공유하기 위해 RTCPeerConnection 객체에 저장하는 것이다.
SDP offer와 description을 만들었다면 이제 수신자에게 전송한다.
레퍼런스
- RTCPeerConnection
- SDP는 무엇인가
- SDP offer와 local description의 차이
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'Computer Science > 네트워크' 카테고리의 다른 글
netcat으로 HTTP 요청 보내기 (0) | 2023.09.20 |
---|---|
Cloud (0) | 2023.07.04 |
터널 모드 (1) | 2023.06.16 |
IEEE 802.11 네트워크 요소와 구조 모델 (2) | 2023.06.15 |
하트 비트 프로토콜 (0) | 2023.06.14 |