クライアント側で学習ノートを紹介しましたが、最近少し時間がありましたので、サーバー側で学習ノートを整理していきます。
ここでは、公式のデモコードに従って、段階的に整理して学習します。
https://github.com/versatica/mediasoup-demo/tree/v3/server
一見、コード構造
はかなり多いように見えますが、実際、以下のファイルに注目することで、mediasoupのサーバー機能を実現することができます。
- config [.example] .js
- server.js
- lib / Room.js
以下に1つずつ説明しましょう。
config.js
ここでの主な構成は、証明書ポートのドメイン名のIPアドレスなどです。オーディオとビデオのパラメーターがある場合は、ここで構成することもできます。これは参照用の画像です。
- routerOptionsは、ルーティング関連のパラメーターを作成します
- webRtcTransportOptionsrtcチャネル関連のパラメーターを作成します
- plainTransportOptionsチャネルを作成する必要がない場合は、ここで構成する必要はありません。
server.js
コードのこの部分とmediasoupの関連機能は、部屋の作成と削除の統合された制御として簡単に理解できます。getOrCreateRoom
ここでしか注意を払わない
- runMediasoupWorkersmedisoupサービス
- runHttpsServerhttpサービス
- runProtooWebSocketServerWebSocketサービス
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は、このユーザーによって作成されたトランスポートの残りの数を格納するものとして簡単に理解できます。残りは理解しやすいです。
これで大丈夫です。いくつかの重要なファイルについて説明します。後で詳しく説明します。