newConsumer
<h5>简要描述</h5>
<ul>
<li>用户进入房间以后, 信令服务器会下发房间现有用户/新进房间用户的订阅信息给当前用户</li>
<li>用户收到newConsumer消息以后,通过服务器下发的rtpParameters进行pc->setRemoteDescription以及pc->CreateAnswer操作与远端用户进行sdp交换</li>
<li>以上操作均成功以后,会生成mediasoupclient::Consumer 对象,程序将这个对象指针保存起来用于后续对其管理操作。</li>
</ul>
<h5>请求方式</h5>
<ul>
<li>Websocket.Send</li>
</ul>
<h5>参数</h5>
<p><a href="https://www.showdoc.com.cn/1591639269927039/7912937086999827" title="通用协议部分点击这里查看">通用协议部分点击这里查看</a></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">rtpParameters.codecs</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>新的订阅数据所使用的编码信息</td>
</tr>
<tr>
<td style="text-align: left;">rtpParameters.headerExtensions</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>新的订阅数据所使用的标头信息</td>
</tr>
<tr>
<td style="text-align: left;">rtpParameters.encodings</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>新的订阅数据所使用的分层传输信息</td>
</tr>
<tr>
<td style="text-align: left;">rtpParameters.rtcp</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>新的订阅数据所使用的实时传输控制协议信息</td>
</tr>
<tr>
<td style="text-align: left;">rtpParameters.mid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>新的订阅数据所使用的分层传输ID</td>
</tr>
<tr>
<td style="text-align: left;">type</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>新的订阅用户类型</td>
</tr>
<tr>
<td style="text-align: left;">appData</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>新的订阅用户信息</td>
</tr>
<tr>
<td style="text-align: left;">producerPaused</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>订阅数据是否已被暂停</td>
</tr>
</tbody>
</table>
<h5>请求示例</h5>
<pre><code>{
"request": true,
"id": 7880192,
"roomId": "auto_room",
"peerId": "hook_user",
"method": "newConsumer",
"data": {
"peerId": "5uvlxvif",
"producerId": "737d9f3d-e555-463b-b813-8dd5be70229c",
"id": "fb2dbff5-da22-4922-93c7-e61a618ebe0c",
"kind": "audio",
"rtpParameters": {
"codecs": [
{
"mimeType": "audio/opus",
"payloadType": 100,
"clockRate": 48000,
"channels": 2,
"parameters": {
"minptime": 10,
"useinbandfec": 1,
"sprop-stereo": 1,
"usedtx": 1
},
"rtcpFeedback": []
}
],
"headerExtensions": [
{
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid",
"id": 1,
"encrypt": false,
"parameters": {}
},
{
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
"id": 4,
"encrypt": false,
"parameters": {}
},
{
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level",
"id": 10,
"encrypt": false,
"parameters": {}
}
],
"encodings": [
{
"ssrc": 764394298
}
],
"rtcp": {
"cname": "u3KqI6124M0E38eO",
"reducedSize": true,
"mux": true
},
"mid": "0"
},
"type": "simple",
"appData": {
"peerId": "5uvlxvif"
},
"producerPaused": false
}
}</code></pre>
<h5>返回示例</h5>
<pre><code>{
"data": null,
"id": 1383697,
"ok": true,
"response": true
}</code></pre>
<h5>返回参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<p>(空消息体)</p>
<h5>备注</h5>
<ul>
<li>
<p>注意, 该通知消息比较特殊, 前端必须作出回复, 否则服务器会因流程走不通挂掉.</p>
</li>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>