3. createWebRtcTransport
<h5>简要描述</h5>
<ul>
<li>创建数据传输通道
mediasoup-client和libmediasoupclient都需要单独的WebRTC-“transports"进行发送和接收。
通常,客户端应用程序甚至在希望发送或接收媒体之前都会预先创建那些"transports”。
For sending media: 发送媒体</li>
</ul>
<p>创建数据通道流程在创建mediasoup::Device设备之后进行。
通常会创建2条数据通道,区别只是producing不同,一条生产数据一条不生产数据</p>
<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;">consuming</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否订阅该数据</td>
</tr>
<tr>
<td style="text-align: left;">producing</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否生产该数据</td>
</tr>
</tbody>
</table>
<h5>请求示例</h5>
<pre><code>{
"data": {
"consuming": false, // 这里注意, 如果建立的Transport为RecvTransport的话, 则这个参数必须为true
"producing": true, // 这里注意, 如果建立的Transport为SendTransport的话, 则这个参数必须为true
"sctpCapabilities": {
"numStreams": {
"MIS": 1024,
"OS": 1024
}
}
},
"id": 1020588800,
"method": "createWebRtcTransport",
"request": true
}</code></pre>
<h5>返回示例</h5>
<pre><code>{
"response": true,
"id": 1020588800,
"ok": true,
"method": "createWebRtcTransport",
"roomId": "room_id_default001",
"peerId": "Robot0001",
"data": {
"id": "9d39af4e-b0f5-46d7-a4bb-b96d6a51679d",
"iceParameters": {
"iceLite": true,
"password": "04w7hc3dyo6kb81q59t8y1oanxflk1y7",
"usernameFragment": "rrveoj2wdrpz2fsx"
},
"iceCandidates": [
{
"foundation": "udpcandidate",
"ip": "137.116.160.92",
"port": 47017,
"priority": 1076302079,
"protocol": "udp",
"type": "host"
}
],
"dtlsParameters": {
"fingerprints": [
{
"algorithm": "sha-1",
"value": "8F:93:A0:4D:74:7D:C8:4C:CB:75:46:BD:54:F2:76:F0:B6:3F:21:D3"
},
{
"algorithm": "sha-224",
"value": "5A:AE:57:7C:1B:9A:C6:F6:37:9A:53:A7:0C:12:A7:EE:8D:9C:09:7F:03:E9:86:2C:A3:30:63:6E"
},
{
"algorithm": "sha-256",
"value": "1E:5F:1C:7A:BA:C3:26:8D:AD:C1:54:26:A0:1D:B4:EF:A9:BD:AE:45:1F:7C:D2:05:1D:A7:DD:0B:27:CF:0A:91"
},
{
"algorithm": "sha-384",
"value": "E3:09:61:21:13:28:3F:BD:F8:10:A1:86:40:41:9D:E4:78:ED:20:5D:C0:50:EF:80:9E:52:A4:20:48:F2:F1:21:53:0C:82:8D:23:2F:B3:5F:C5:00:9B:43:74:73:89:86"
},
{
"algorithm": "sha-512",
"value": "EC:06:A9:E4:63:C8:B5:58:D9:3F:5D:9E:7A:C0:82:F4:25:59:25:24:7C:7E:B1:19:8D:DA:99:BD:28:8B:4E:0E:9C:7B:3C:EE:26:D1:CC:A3:D0:22:51:82:94:7E:F0:FF:4B:9A:55:79:F2:82:E9:60:C9:7A:E6:A6:EA:CF:0F:07"
}
],
"role": "auto"
},
"sctpParameters": {
"MIS": 1024,
"OS": 1024,
"isDataChannel": true,
"maxMessageSize": 262144,
"port": 5000,
"sctpBufferedAmount": 0,
"sendBufferSize": 262144
}
}
}</code></pre>
<h5>返回参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">long</td>
<td>数据通道的ID</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>创建的2条数据通道字段内容是一样的,只是变量上有一小部份差别。</li>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>