实时音视频RTC

    快速开始

    本文档将介绍从创建百度智能云账号开始,到完成一次音视频通信为止,之间所需要的必要的操作步骤。

    image.png

    准备工作

    1.1 注册百度智能云账号,并完成实名认证

    创建应用

    2.1 进入RTC产品控制台,选择应用管理-创建应用。

    image.png

    在AppServer上部署token生成服务

    为保证实时通信的安全,在通信时需要进行特殊鉴权。用户在自己的AppServer(客户的后端服务器)上部署token生成服务,生成token并在通信中使用,来实现通信的鉴权。

    RTC鉴权机制

    鉴权流程如下: zxcvbn.png

    1. 当App需要使用RTC服务时,向AppServer(客户的后端服务器)请求Token;
    2. AppServer根据token生成算法以及相应的AppKey生成相应的Token,并下发给App;
    3. App在调用RTC SDK时,提供Token;
    4. SDK在与RTC后端服务器发起http/websocket连接时提供Token参数;
    5. RTC后端对token进行验证,验证不通过时会拒绝访问;验证通过,则提供RTC服务

    部署token生成服务

    为了实现上述的鉴权机制,需要在客户的AppServer上部署Token生成服务。

    Token计算需要以下参数:

    • AppID:由baiduRTC提供,全局唯一,用于识别应用;
    • AppKey: 由baiduRTC提供,每个AppID拥有一个AppKey,并且可更新;您可以登录百度智能云- 并进入RTC控制台查看AppID和AppKey。
    • RoomName: 房间名称,由用户指定并维护;
    • Uid: 用户id,由用户指定并维护,用户保证唯一性;
    • ts: token生成时的unix时间戳
    • ExpectTS: 过期时间,unix时间戳;
    • Version:鉴权版本,当前取值004

    Token计算步骤

    1. 输入需要的6个参数
    2. 生成当前时间戳ts,并补齐至10位。格式需要转换为十进制Unix时间戳。推荐一个在线转换网站
    3. 生成randomString。随机一个int型整数,并转成对应16进制数字字符串,并补齐至8位。
    4. 生成签名。使用HmacSHA1算法加密来计算签名,结果返回16进制字符串。 key=appKey; data="ACS"(固定的ACS三个字母) + appID + ts + randomString + roomName + uid + expectTs; signature = HamcSHA1(key, data);
    5. 拼接token

    token = version + signature + ts + randomString + expectTs;

    Token的格式

    字段 说明 长度 示例
    version 鉴权版本 3 004
    ts token生成时的unix时间戳 10字符,不足补0 154476606
    signature 签名 40字符 8f50a1f280e69f4581dd8bf8b3b9cc9d277cd3a6
    randomString salt string,int转16进制字符串 8字符,不足补0 dabdd97c
    expectTs 过期时间,unix时间戳,全0表示24小时后过期 10字符,不足补0 1578380254

    计算示例

    准备好的各参数为: appID: app-jcagj2g5ecrqv7bn

    version: 004

    ts: 1553144847

    randomString: dabdd97c

    expectTs: 1578380254

    roomName:aaa

    uid: 54321

    AppKey: s-jcagj2g5eewai6u3p3

    计算得signature: HamcSHA1(s-jcagj2g5eewai6u3p3, ACSapp-jcagj2g5ecrqv7bn1553144847dabdd97caaa543211578380254) = 08b1a06afc9c138625dc7fc9ab5e7770c5156f23

    构造token为:00408b1a06afc9c138625dc7fc9ab5e7770c5156f231553144847dabdd97c1578380254

    您可以下载token生成实例代码进行参考(示例代码包含JAVA和Python两种语言)。

    集成客户端SDK

    您可以访问 下载专区 下载不同终端最新版SDK。

    上一篇
    产品定价
    下一篇
    操作指南