基本概念
频道:频道是一个音视频空间(可以理解为一场会议),同一频道内的用户可以互相接收对方的实时音视频数据。加入频道流程
- 业务方客户端调用业务方后端的进入频道接口
- 业务方后端调用
服务端api的channel/grant获取token返回给业务方客户端 - 业务方客户端将
token传给rtc sdk以加入频道
频道的打开与销毁
- 频道可手动打开(如需要提前设置一些频道扩展属性)
- 第一个用户加入频道时如果频道未打开,自动打开
- 频道开启后2小时内无人加入,或最后一个用户离开频道2小时后,会自动销毁
频道名规范
长度在 64 字节以内的字符串。以下为支持的字符集范围:- 26 个小写字母 a-z。
- 26 个大写字母 A-Z。
- 10 个数字 0-9。
- ”-”,”_“。
约定
- 本协议采用HTTP+JSON格式进行传输
application/json - 协议所有接口只支持
POST - 字符串编码为UTF-8
请求地址
标准部署下 SRTC 挂在域名根路径。同域名的
/meeting/ 前缀走的是 SMeeting 会议服务,
两者接口不通用(见 选 SRTC 还是 SMeeting)。独立域名部署时以我们提供的接入信息为准。准备
调用前需要得到app_id和app_key
请求头
签名算法
第一步:拼接待签名字符串,将app_id nonce timestamp以及请求body的json字符串用&拼接
app_key秘钥。
signature
三处容易踩的细节:
- 待签名串里的字段名要与你实际使用的请求头名一致——用了
app-id就写app-id=,不能写app_id= - 请求体用原始字符串参与签名,必须与实际发出的字节完全一致(含空格与字段顺序),不要重新序列化一遍
app_key只用于在你的服务端本地计算签名,绝不能出现在请求里,也不能下发到客户端
uid 与 sid
uid是你自己业务的用户 ID,由你指定,RTC 侧不生成sid是本次会话 ID,由 RTC 侧在授权时生成,同一uid多次进入会得到不同的sid
回调
除了你主动调用接口,RTC 侧也会在频道/用户/录制状态变化时回调你的业务后端, 见回调事件接入指南。响应格式
成功与失败都返回 HTTP 200,业务结果由code 判定。
正常返回,code为0,data为数据
code为错误码,msg为错误描述
code 判断,不要匹配 msg 文案。全部取值见错误码。