mediasoupでのsendonlyとreconlyをSDPだけで試した
webRTCでは接続してきたユーザはメディアの送信、受信を両方共できるのですが、
今回はメディアの送信のみと配信のみで接続させてみたいと思います。
今回はクライアントの設定のみで行いたいと思います。
修正箇所を見てみる
webRTCではSDP(session description protocol)っという接続情報を記述しているものがあります。
これをもとにP2Pでの接続時にお互いの情報(コーデックなど…)を交換しあい、接続をすることができるということです。
このSDPの中を変更し、送信のみと受信のみと切り分けることができます。
下記が設定できる、送受信モードです。
属性 | 内容 |
---|---|
sendonly | 送信のみのモード |
recvonly | 受信のみのモード |
sendrecv | 送受信モード |
inactive | 非アクティブ |
デフォルトではSDPの中に
a=sendrecv
っと記述しているのでここを修正
// 送信のみ function modifiSendOnlyMode(description) { sdp = description.replace(/a=sendrecv\r\n/g, 'a=sendonly\r\n'); return sdp; }
// 配信のみ function modifiReceiveOnlyMode(description) { sdp = description.replace(/a=sendrecv\r\n/g, 'a=recvonly\r\n'); return sdp; }
修正したSDPをLocalDescriptionにセットし、相手に通知すればOK
無事に送信のみのクライアントと受信のみにクライアントの切り替え成功です。