书接上回《浅尝不辄止系列之试试腾讯云的 TUIRoom(上)》

前提

上篇主要聊了一下集成 TURRoom 的前端部分。

涉及到的代码不是很多,主要是思路,因为我觉得思路和画面感对程序员来说比编码更重要,想清楚自己要做的东西,在脑海里是个什么样子的,结合相关文档资料,只要能基本确定可以实现,就可以放手去干了,这样做绝对会事半功倍!

集成服务端 SDK

其实服务端的部分比较简单,只需要引入腾讯的服务端开发包,然后根据需求,稍加封装就可以了

  • 引入 sdk

package install TecentCloudSDK

复制代码

  • 创建一个业务中心类,我这里为了图省事,就直接封装成了静态方法

public class MyTrtc{  private IResponse resp;  public MyTrtc(IResponse Resp)  {    resp = Resp;  }  //tecentCloud子账号信用凭证  public static readonly Credential cred = new Credential  {    SecretId = "自己的id",    SecretKey = "自己的秘钥"  };    /// <summary>  /// 查询房间内的人数  /// </summary>  /// <param name="CommId"></param>  /// <param name="startTime"></param>  /// <param name="endTime"></param>  /// <returns></returns>  //public static Response DescribeCallDetail(string CommId, ulong startTime,ulong endTime)  public static async Task<Response> DescribeCallDetail(MemberModel model)  {    Response resp = new Response();    try    {      ClientProfile clientProfile = new ClientProfile();      HttpProfile httpProfile = new HttpProfile();      httpProfile.Endpoint = ("trtc.tencentcloudapi.com");      clientProfile.HttpProfile = httpProfile;
      TrtcClient client = new TrtcClient(cred, "ap-guangzhou", clientProfile);      DescribeCallDetailRequest req = new DescribeCallDetailRequest();      req.CommId = model.CommId;      req.StartTime = model.StartTime;      req.EndTime = model.EndTime;      req.PageNumber = (Convert.ToInt32(model.pageindex) - 1).ToString();      req.PageSize = model.pagesize;      req.SdkAppId = Common.ConfigurationHelper.GetSectionValue("trtcId");      DescribeCallDetailResponse dresp = await client.DescribeCallDetail(req);      resp.code = 1;      resp.data = new { total = dresp.Total, items = dresp.UserList };    }    catch(Exception ex)    {      resp.code = -1;      resp.message = $"查询房间人数失败,{ex.Message},{ex.StackTrace}";    }    return resp;  }}

复制代码

因为封住的部分,主要就是根据实际需求灌装代码了,我就不一一列举了,这里就列一个查询房间人数的逻辑,其余的,还有“查询房间列表”,“解散房间”,“踢人”,“推流”,“终止推流”这几个方法,大家感兴趣的,可以看官方手册,按需接入就可以了。

  • 编写接口。这部分也很简单,在业务中心类里,封装好 sdk 的方法后,就编写自己的项目接口了

/// <summary>/// 查询房间列表/// </summary>/// <param name="model"></param>/// <returns></returns>[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> DescribeRoomInformation(RequestModels.Trtc.RoomModel model){return Json(await MyTrtc.DescribeRoomInformation(model));}/// <summary>/// 解散房间/// </summary>/// <param name="roomId"></param>/// <returns></returns>[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> DismissRoom(RequestModels.Trtc.RoomModel model){return Json(await MyTrtc.DismissRoom(model.RoomId));}/// <summary>/// 房间内用户列表/// </summary>/// <param name="model"></param>/// <returns></returns>[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> DescribeCallDetail(RequestModels.Trtc.MemberModel model){return Json(await MyTrtc.DescribeCallDetail(model));}/// <summary>/// 移除房间内用户/// </summary>/// <param name="model"></param>/// <returns></returns>[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> RemoveUser(RequestModels.Trtc.RoomModel model){return Json(await MyTrtc.RemoveUser(model));}
/// <summary>/// 直播推流/// </summary>/// <param name="model"></param>/// <returns></returns>[HttpPost]public async Task<IActionResult> PushLive(RequestModels.Trtc.PushStreamModel model){return Json(await MyTrtc.PushLive(model));}
/// <summary>/// 结束推流/// </summary>/// <param name="roomId"></param>/// <returns></returns>[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> EndPushLive(ulong roomId){return Json(await MyTrtc.EndPushLive(roomId));}

复制代码

  • 开发控制管理页面,这部分我就不贴代码了,就是根据业务场景,把管理页面做出来就行,贴几张图吧

服务端的集成基本就是这样。集成好后,就可以进行旁路直播的基本管理了。

好了,基本就是这样了,一篇拆两篇,希望官方大大原谅~~。

PS.本文已于2022.7.8发布于InfoQ写作社区(原地址:浅尝不辄止系列之试试腾讯云的 TUIRoom(下)_7月月更_为自己带盐_InfoQ写作社区),于2022.12.5由作者本人转载至CSDN社区

浅尝不辄止系列之试试腾讯云的 TUIRoom(下)相关推荐

  1. 浅尝不辄止系列之试试腾讯云的 TUIRoom(上)

    背景 昨天晚上因为和几个朋友约好了,喝了点酒,又不想因为这个断更,白天也实在是没空,就匆忙写了个开头,占了个位置,今天早上赶早赶紧补上~~ 近期公司准备要上一期直播活动,因为之前已经集成过腾讯云的 T ...

  2. JavaScript浅尝不辄止

    学习java  web,则虽然小编是后台忠实程序猿,但是再刚开始练习时也是不得不接触js,因为 作为一个人的学习者,没了前端何来测试后台,所以我们刚开始入门从js开始,实现几个也许我们早已从java学 ...

  3. 要闻君说:台积电将为iPhone生产5纳米A系列芯片?腾讯云TStack与银河麒麟完成互认证……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  4. 一起飞系列之:腾讯云配置Ubuntu16.04, Nginx, PHP 7, MySql, PhpMyAdmin, 域名

    前言 公司业务扩展需要大力提高微信用户的关注度,但是主服务器都在境外,国内客户访问速度成为了最大的障碍.先后试验过CloudFlare跟腾讯DNS加速,但是都无法逾越我们的万里长城万里长.所以决定将服 ...

  5. 【Python爬虫系列】浅尝一下爬虫40例实战教程+源代码【基础+进阶】

    前言 哈喽!哈喽!我是栗子同学~ 小编从最初的Python入门安装开始到现在更新了90多篇文章啦. 但是新手系列更新完之后--后续的爬虫系列更不动,大家也知道这个机制,很多内容不能发 滴!很多小伙伴儿 ...

  6. 浅尝则止 - SciPy科学计算

    21. 浅尝则止 - SciPy科学计算 SciPy以NumPy为基础,提供了众多数学.科学.工程计算用的模块,包括但不限于:线性代数.常微分方程求解.信号处理.图像处理.稀疏矩阵处理. 本章适合那些 ...

  7. python 三维凸包_浅尝则止 - SciPy科学计算 in Python

    本文节选自作者的<Python编程基础及应用>视频教程.Python编程基础及应用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 21. 浅尝则止 ...

  8. 论文浅尝 | 近期论文精选

    本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly! TheWebConf 2018 ■ 链接 | https://ww ...

  9. bo耳机h5使用说明_给想浅尝便携hifi耳机的烧友的一点建议

    初入门的烧友,要么是好友推荐品牌或型号,要么是机缘巧合蹭听到了好耳机的声音,心潮澎湃,仿佛一下打开了新世界的大门!原来听的歌,现在听感觉完全不同,有种豁然开朗的感觉,之后,心如小鹿乱撞,恨不得马上买买 ...

最新文章

  1. JSON.stringify()
  2. Java中的ThreadLocal详解
  3. CPU所含有的寄存器
  4. MyBatis在insert插入操作时返回主键ID
  5. 基于k8s多集群隔离环境下的devops实现
  6. 胃部不适,原来好辛苦!
  7. 黑马博客——详细步骤(九)项目功能的实现之mongoDB数据库添加账号
  8. mean python_Python mean()方法的详细指南
  9. kettle使用文件导入到Postgresql出现如下几种问题的总结
  10. 网站安全之密码明文传输漏洞
  11. 电脑中的打印驱动程序如何打包_旧驱动程序会教您如何处理笔记本电脑上的黑屏...
  12. ati自定义分辨率_Windows的自定义显示分辨率实用程序
  13. Python 实现端口扫描器
  14. Ubuntu16 网卡rtl8723be 驱动安装
  15. 学习记录:jmeter添加jp@gc - Hits per Second
  16. 谷歌浏览器控制台位置调整
  17. 前端插件日常问题 整理
  18. html表单中怎么写年份,HTML表单
  19. 如何正确选择电磁流量计
  20. 关于使用jQuery前端上传文件

热门文章

  1. 为什么geany不能执行python程序_python的geany文本编辑器无法执行,如何解决?
  2. 企业管理培训进入存量时代,博商管理的“熵减”之道
  3. 理论物理 理论计算机科学,张阳:从理论物理到理论生命
  4. ios13 AirPods如何看电量?AirPods看电量方法
  5. 计算机应用2010操作题,计算机应用基础Excel2010综合测试操作步骤参考自测题步骤.doc...
  6. linux下c语言使用mac地址进行socket通信
  7. 用手机拍摄视频技巧大全
  8. 一建和二建可以同时注册吗?
  9. 关于debian9 桌面管理xfce4的一些快捷键设置
  10. 逆向wireshark学习SSL协议算法(转)