reference : Mediasoup를 사용해서 sfu방식으로 구현
정글 사관학교를 수료하신 분께서 mediasoup 구현 방식을 자세하게 올린 블로그 글입니다.
이렇게 자세하게 올려주신 덕분에 구현이 수월했습니다!! 감사합니다🙏
각 클라이언트를 mediasoup router와 연결해서 producer와 consumer 간의 미디어 전송을 가능하게 한다.
router로 부터 만들어지는 것으로 producer와 consumer를 만들기 위해서는 무조건 생성해야 한다.
라우터를 사용해서 미디어 스트림을 전달할 수 있고, 일반적을 하나의 room에 하나의 라우터가 생성되고 모든 peers가 해당 라우터를 공유한다.
worker로부터 생성된다.
worker mediasoup의 미디어 서버를 나타냄
🤔 이때 미디어 서버란?
💡 실시간 미디어 스트리밍 및 통신을 처리하는 서버, 네트워크를 통해 오디오, 비디오 및 기타 미디어 데이터를 전송하고, 클라이언트 간에 실시간으로 이러한 미디어 데이터를 교환하도록 도움
💡 데이터그램 전송 계층 보안 프로토콜, 안전한 데이터 전송을 제공하기 위해 설계된 프로토콜
UDP 기반의 통신환경에서 안전한 통신을 제공하기에 데이터의 기밀성과 무결성이 중요한 실시간 통신 시나리오에서 많이 활용
router를 통해 media를 보내는 쪽
mediasoup 서버에서 생성되고 관리되며 미디어 스트림을 생성
router를 통해 media를 받는 쪽
mediasoup 클라이언트에서 생성되며 서버로 부터 제공되는 미디어 스트림을 화면에 표시하거나 오디오를 재생
mediasoup의 기본적인 용어를 공부했으니 이제 어떻게 구성되어 있는지 확인해보자
처음 접속할 때 worker를 생성하고 peers가 공유할 수 있는 router를 할당해주고 consumer와 producer의 통신을 위해 transport를 통해 미디어,비디어 전송을 한다.
worker를 먼저 생성해주고 그 안에서
room 하나 만들때 마다
우리팀이 구현하는 통신은 모두가 모두에게 비디오, 오디오 스트림을 보내고 또 모두에게 스트림을 받아야 하는 구조이므로 이런 구조를 가져야 한다.
이게 되게 어렵긴 한데 한번 이해하면 괜찮다고 한다 근데 왜 난 여러번 봐도 어렵지...?