退役军人实时音视频

gcz 72afaeb10b 更改后台接口 2 rokov pred
public 601354ece6 还在使用本地签名 3 rokov pred
src 601354ece6 还在使用本地签名 3 rokov pred
static 8aa0cc4f51 auto commit 3 rokov pred
.env.development 601354ece6 还在使用本地签名 3 rokov pred
.env.production 72afaeb10b 更改后台接口 2 rokov pred
.gitignore fcec1d8199 first commit 3 rokov pred
README.md fcec1d8199 first commit 3 rokov pred
babel.config.js fcec1d8199 first commit 3 rokov pred
package-lock.json cd490d3011 签名问题 3 rokov pred
package.json cd490d3011 签名问题 3 rokov pred
trtc-calling-web.rar fcec1d8199 first commit 3 rokov pred
vue.config.js 601354ece6 还在使用本地签名 3 rokov pred

README.md

本文主要介绍如何快速跑通 Web 版本的 TRTCCalling Demo,Demo 中包括语音通话和视频通话场景:

- 语音通话:纯语音交互,支持多人互动语音聊天。

- 视频通话:视频通话,面向在线客服等需要面对面交流的沟通场景。

环境要求

  • 请使用最新版本的 Chrome 浏览器。
  • TRTCCalling 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
    • TCP 端口:8687
    • UDP 端口:8000,8080,8800,843,443,16285
    • 域名:qcloud.rtc.qq.com
  • 一般情况下体验 Demo 需要部署至服务器,通过 https://域名/xxx 访问,或者直接在本地搭建服务器,通过 localhost:端口访问。
  • 目前桌面端 Chrome 浏览器支持 TRTC 桌面浏览器 SDK 的相关特性比较完整,因此建议使用 Chrome 浏览器进行体验。

前提条件

您已 注册腾讯云 账号,并完成 实名认证

复用 Demo 的 UI 界面

步骤1:创建新的应用

  1. 登录实时音视频控制台,选择【开发辅助】>【快速跑通Demo】。

  2. 单击【立即开始】,输入应用名称,例如TestTRTC,单击【创建应用】。

步骤2:下载 SDK 和 Demo 源码

  1. 鼠标移动至对应卡片,单击【Github】跳转至 Github(或单击【ZIP】),下载相关 SDK 及配套的 Demo 源码。
  2. 下载完成后,返回实时音视频控制台,单击【我已下载,下一步】,可以查看 SDKAppID 和密钥信息。

步骤3:配置 Demo 工程文件

  1. 解压 步骤2 中下载的源码包。

  2. 找到并打开Web/TRTCScenesDemo/TRTCCalling/public/debug/GenerateTestUserSig.js文件。

  3. 设置GenerateTestUserSig.js文件中的相关参数:

  • SDKAPPID:默认为0,请设置为实际的 SDKAppID。

  • SECRETKEY:默认为空字符串,请设置为实际的密钥信息。
    1. 返回实时音视频控制台,单击【粘贴完成,下一步】。

    2. 单击【关闭指引,进入控制台管理应用】。

    本文提到的生成 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此*该方法仅适合本地跑通 Demo 和功能调试*。

    正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig

    步骤4:运行 Demo

    • Demo 运行界面如图所示:
    • 输入用户 userid,点击【登录】
    • 输入呼叫用户 userid,即可视频通话
    • 视频通话

    实现自定义 UI 界面

    步骤1:集成 SDK

    NPM 集成

    从v0.6.0起,需要手动安装依赖 trtc-js-sdktim-js-sdk 以及 tsignaling

    • 为了减小 trtc-calling-js.js 的体积,避免和接入侧已使用的 trtc-js-sdk 和 tim-js-sdk 以及 tsignaling 发生版本冲突,trtc-js-sdk 和 tim-js-sdk 以及 tsignaling 不再被打包到 trtc-calling-js.js,在使用前您需要手动安装依赖。 ```javascript npm i trtc-js-sdk --save npm i tim-js-sdk --save npm i tsignaling --save npm i trtc-calling-js --save

    // 如果您通过 script 方式使用 trtc-calling-js,需要按顺序先手动引入 trtc.js

    // 接着手动引入 tim-js.js

    // 然后再手动引入 tsignaling.js

    // 最后再手动引入 trtc-calling-js.js

    在项目脚本里引入模块
    ```javascript
    import TrtcCalling from 'trtc-calling-js';
    

    步骤2:创建 trtcCalling 对象

    • sdkAppID: 您从腾讯云申请的 sdkAppID javascript let options = { SDKAppID: 0 // 接入时需要将0替换为您的云通信应用的 SDKAppID }; const trtcCalling = new TRTCCalling(options);

    步骤3:登录

    • userID: 用户 ID
    • userSig: 用户签名,计算方式参见如何计算 userSig javascript trtcCalling.login({ userID, userSig });

    步骤4:实现 1v1 通话

    拨打:

    • userID: 用户 ID
    • type: 通话类型,0-未知, 1-语音通话,2-视频通话
    • timeout: 邀请超时, 单位 s(秒)

      trtcCalling.call({
      userID,
      type: 2,
      timeout
      });
      

      接听

    • inviteID: 邀请 ID, 标识一次邀请

    • roomID: 通话房间号 ID

    • callType: 0-未知, 1-语音通话,2-视频通话

      trtcCalling.accept({
      inviteID,
      roomID,
      callType
      });
      

      打开本地摄像头

      trtcCalling.openCamera()
      

      展示远端画面

    • userID: 远端用户 ID

    • videoViewDomID: 该用户数据将渲染到该 DOM ID 节点里

      trtcCalling.startRemoteView({
      userID,
      videoViewDomID
      })
      

    展示本地画面

    • userID: 本地用户 ID
    • videoViewDomID: 该用户数据将渲染到该 DOM ID 节点里 javascript trtcCalling.startLocalView({ userID, videoViewDomID })

    挂断/拒接

    trtcCalling.hangup()
    
    • inviteID: 邀请 id,标识一次邀请
    • isBusy: 是否是忙线中, 0-未知, 1-语音通话,2-视频通话 javascript trtcCalling.reject({ inviteID, isBusy })

    支持的平台

    操作系统 浏览器类型 浏览器最低版本要求
    Mac OS 桌面版 Safari 浏览器 11+
    Mac OS 桌面版 Chrome 浏览器 56+
    Windows 桌面版 Chrome 浏览器 56+
    Windows 桌面版 QQ 浏览器 10.4

    常见问题

    1. 查看密钥时只能获取公钥和私钥信息,该如何获取密钥?

    TRTC SDK 6.6 版本(2019年08月)开始启用新的签名算法 HMAC-SHA256。在此之前已创建的应用,需要先升级签名算法才能获取新的加密密钥。如不升级,您也可以继续使用 老版本算法 ECDSA-SHA256,如已升级,您按需切换为新旧算法。

    升级/切换操作:

    1. 登录 实时音视频控制台。

    2. 在左侧导航栏选择【应用管理】,单击目标应用所在行的【应用信息】。

    3. 选择【快速上手】页签,单击【第二步 获取签发 UserSig 的密钥】区域的【点此升级】、【非对称式加密】或【HMAC-SHA256】。

    • 升级:

    • 切换回老版本算法 ECDSA-SHA256:

    • 切换为新版本算法 HMAC-SHA256:

    2. 防火墙有什么限制?

    由于 SDK 使用 UDP 协议进行音视频传输,所以对 UDP 有拦截的办公网络下无法使用,如遇到类似问题,请参考文档:应对公司防火墙限制