4. join
<h5>简要描述</h5>
<ul>
<li>当2条数据通道创建成功以后,则发送join消息进入会议房间</li>
<li>发送完进入房间消息以后,客户端会同步创建音视频频轨道,并进行生产数据,</li>
<li>如果是第一次调用produce,则会发生同步连接与同步onproduce操作,见下面2条消息</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;">device</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>本机设备描述</td>
</tr>
<tr>
<td style="text-align: left;">displayName</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>显示的名字</td>
</tr>
<tr>
<td style="text-align: left;">rtpCapabilities</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>使用的rtp编解码器与标头扩展列表</td>
</tr>
<tr>
<td style="text-align: left;">sctpCapabilities</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">{}</td>
<td>使用的sctp编解码器与标头扩展列表</td>
</tr>
</tbody>
</table>
<h5>请求示例</h5>
<pre><code>{
"device": {
"name": "libmediasoupclient",
"version": "3.3.0"
},
"displayName": "",
"rtpCapabilities": {
"codecs": [
{
"channels": 2,
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio/opus",
"parameters": {
"minptime": 10,
"useinbandfec": 1
},
"preferredPayloadType": 100,
"rtcpFeedback": [
{
"parameter": "",
"type": "transport-cc"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/VP8",
"parameters": {},
"preferredPayloadType": 101,
"rtcpFeedback": [
{
"parameter": "",
"type": "goog-remb"
},
{
"parameter": "",
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"parameter": "",
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 101
},
"preferredPayloadType": 102,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "4d001f"
},
"preferredPayloadType": 105,
"rtcpFeedback": [
{
"parameter": "",
"type": "goog-remb"
},
{
"parameter": "",
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"parameter": "",
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 105
},
"preferredPayloadType": 106,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 107,
"rtcpFeedback": [
{
"parameter": "",
"type": "goog-remb"
},
{
"parameter": "",
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"parameter": "",
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 107
},
"preferredPayloadType": 108,
"rtcpFeedback": []
}
],
"headerExtensions": [
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 5,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 10,
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 11,
"uri": "urn:3gpp:video-orientation"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 12,
"uri": "urn:ietf:params:rtp-hdrext:toffset"
}
]
},
"sctpCapabilities": null
}</code></pre>
<h5>返回示例</h5>
<pre><code>{
"data": {
"peers": [
{
"audioStatus": 0,
"device": {
"flag": "edge",
"name": "Microsoft Edge",
"version": "103.0.1264.37"
},
"displayName": "Steenee",
"id": "5yzjgyzx",
"videoStatus": 0
}
]
},
"fromId": "adfaa0af-0504-4050-9298-644e455f7053",
"id": 1918087,
"method": "join",
"ok": true,
"peerId": "adfaa0af-0504-4050-9298-644e455f7053",
"response": true,
"roomId": "9ea9d269-3a5e-46f1-bb13-00963ad98513"
}</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;">peers</td>
<td style="text-align: left;">string</td>
<td>未定</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>