Mediasoup 연구 노트 서버 측 [1]

클라이언트 측에서 스터디 노트를 소개했는데 최근에 시간이 좀 있었는데 돌아가서 서버 측 스터디 노트를 정리해 보겠습니다.

여기서는 공식 데모 코드를 따라 단계별로 분류하고 학습합니다.
https://github.com/versatica/mediasoup-demo/tree/v3/server

언뜻보기에 코드 구조
여기에 사진 설명 삽입
상당히 많은 것으로 보이지만 실제로 다음 파일에 집중하면 미디어 수프의 서버 기능을 구현할 수 있습니다.

  • config [.example] .js
  • server.js
  • lib / Room.js

아래에서 하나씩 설명하겠습니다.

config.js

여기서 기본 구성은 인증서 포트 도메인 이름 IP 주소 등입니다. 오디오 및 비디오 매개 변수가있는 경우 여기에서도 구성 할 수 있습니다. 여기에 참조 용 사진이 있습니다.
여기에 사진 설명 삽입

  • routerOptions는 라우팅 관련 매개 변수를 생성합니다.
  • webRtcTransportOptions rtc 채널 관련 매개 변수 생성
  • plainTransportOptions 채널을 생성 할 필요가없는 경우 여기에서 구성 할 필요가 없습니다.

server.js

코드의이 부분과 mediasoup의 관련 기능은 룸 생성 및 삭제에 대한 통합 제어로 이해 될 수 있습니다. getOrCreateRoom

여기서 만 주목 해

  • runMediasoupWorkers medisoup 서비스
  • runHttpsServer http 서비스
  • runProtooWebSocketServer 웹 소켓 서비스

createExpressApp의 경우 순수한 데모 비즈니스 기능으로 간주 할 수 있습니다.

Room.js

서버 부분은 제어 사람, 채널 및 데이터 여기에, 방을 제어하는 것입니다.
초점 학습 포인트

* _handleProtooRequest는 시그널링을 통해 데이터를 처리하고, 다른 방법은

  • handleProtooConnection
    이 다음 코드의 기능을 이해할 수 있다면 나머지는 api 문제입니다.
peer.data.transports = new Map();
peer.data.producers = new Map();
peer.data.consumers = new Map();
peer.data.dataProducers = new Map();
peer.data.dataConsumers = new Map();

예를 들어 첫 번째 peer.data.transports는이 사용자가 생성 한 나머지 전송 수를 저장하는 것으로 이해 될 수 있으며 나머지는 이해하기 쉽습니다.
그게 다입니다. 몇 가지 중요한 파일에 대해 이야기하고 나중에 자세히 소개하겠습니다.

추천

출처blog.csdn.net/uk_51/article/details/114785025