0. 公共协议部分
<h5>简要描述</h5>
<ul>
<li>与信令服务器建立连接, 并进行数据请求的公共协议内容。</li>
<li>与信令服务器的交互消息分为两种, 一种是普通消息, 一种是通知消息, 通知消息的返回值为固定格式.</li>
<li>上行消息 = 客户端主动向服务器进行请求的消息, 服务器做出反馈</li>
<li>下行通知 = 服务器主动向客户端进行推送的消息, 客户端做出反馈</li>
</ul>
<h5>请求URL</h5>
<ul>
<li>
<p><code>wss://137.116.160.92:4443/?roomId=room_id_default001&peerId=Robot0001</code></p>
<p>注意:
1、wss://host:port 协议地址为RTCDispatcher中获取
2、roomId与peerId必填部分
3、websocket库要支持Sec-WebSocket-Protocol请求头,对应值为字符串:secret-media</p>
</li>
</ul>
<h5>请求方式</h5>
<ul>
<li>Websocket </li>
</ul>
<h5>1.1 请求参数(上行消息)</h5>
<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;">id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>唯一标识</td>
</tr>
<tr>
<td style="text-align: left;">method</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>请求方法</td>
</tr>
<tr>
<td style="text-align: left;">request</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>请求消息标识, 固定为true</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">json_string</td>
<td>请求内容</td>
</tr>
</tbody>
</table>
<h5>1.2 请求示例(上行消息)</h5>
<pre><code>{
"request": true,
"id": 8062875,
"method": "getRouterRtpCapabilities",
"data": {}
}</code></pre>
<h5>1.3 返回示例(上行消息)</h5>
<pre><code>{
method: 'consumerClosed',
data: { }
}</code></pre>
<h5>1.4 返回参数(上行消息)说明</h5>
<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;">errorCode</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>错误码</td>
</tr>
<tr>
<td style="text-align: left;">errorReason</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>错误描述</td>
</tr>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>唯一标识</td>
</tr>
<tr>
<td style="text-align: left;">response</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td>用于标识该消息为普通消息</td>
</tr>
<tr>
<td style="text-align: left;">ok</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td>消息是否被服务器成功处理</td>
</tr>
<tr>
<td style="text-align: left;">method</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>请求方法(同请求)</td>
</tr>
<tr>
<td style="text-align: left;">roomId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>会议房间ID</td>
</tr>
<tr>
<td style="text-align: left;">peerId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>当前用户ID</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>服务器返回的数据内容</td>
</tr>
</tbody>
</table>
<hr />
<h5>2.1 请求参数(下行通知)</h5>
<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;">notification</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>通知消息标识, 固定为true</td>
</tr>
<tr>
<td style="text-align: left;">roomId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>会议房间ID</td>
</tr>
<tr>
<td style="text-align: left;">peerId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>当前用户ID</td>
</tr>
<tr>
<td style="text-align: left;">method</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>通知方法</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">json_string</td>
<td>请求内容</td>
</tr>
</tbody>
</table>
<h5>2.2 请求示例(下行通知)</h5>
<pre><code>{
"notification": true,
"roomId": "yrx1ajys",
"peerId": "nluygwgn",
"method": "activeSpeaker",
"data": {
"peerId": null
}
}</code></pre>
<h5>2.3 返回示例(下行通知)</h5>
<pre><code>{
ok: 'true',
data: { }
}
</code></pre>
<h5>2.4 返回参数(下行通知)说明</h5>
<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;">ok</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">bool</td>
<td>是否成功接收并处理该通知消息</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">json_string</td>
<td>保留, 通知消息暂不需要返回实际数据</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>