浅尝不辄止系列之试试腾讯云的 TUIRoom(下)
书接上回《浅尝不辄止系列之试试腾讯云的 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(下)相关推荐
- 浅尝不辄止系列之试试腾讯云的 TUIRoom(上)
背景 昨天晚上因为和几个朋友约好了,喝了点酒,又不想因为这个断更,白天也实在是没空,就匆忙写了个开头,占了个位置,今天早上赶早赶紧补上~~ 近期公司准备要上一期直播活动,因为之前已经集成过腾讯云的 T ...
- JavaScript浅尝不辄止
学习java web,则虽然小编是后台忠实程序猿,但是再刚开始练习时也是不得不接触js,因为 作为一个人的学习者,没了前端何来测试后台,所以我们刚开始入门从js开始,实现几个也许我们早已从java学 ...
- 要闻君说:台积电将为iPhone生产5纳米A系列芯片?腾讯云TStack与银河麒麟完成互认证……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 一起飞系列之:腾讯云配置Ubuntu16.04, Nginx, PHP 7, MySql, PhpMyAdmin, 域名
前言 公司业务扩展需要大力提高微信用户的关注度,但是主服务器都在境外,国内客户访问速度成为了最大的障碍.先后试验过CloudFlare跟腾讯DNS加速,但是都无法逾越我们的万里长城万里长.所以决定将服 ...
- 【Python爬虫系列】浅尝一下爬虫40例实战教程+源代码【基础+进阶】
前言 哈喽!哈喽!我是栗子同学~ 小编从最初的Python入门安装开始到现在更新了90多篇文章啦. 但是新手系列更新完之后--后续的爬虫系列更不动,大家也知道这个机制,很多内容不能发 滴!很多小伙伴儿 ...
- 浅尝则止 - SciPy科学计算
21. 浅尝则止 - SciPy科学计算 SciPy以NumPy为基础,提供了众多数学.科学.工程计算用的模块,包括但不限于:线性代数.常微分方程求解.信号处理.图像处理.稀疏矩阵处理. 本章适合那些 ...
- python 三维凸包_浅尝则止 - SciPy科学计算 in Python
本文节选自作者的<Python编程基础及应用>视频教程.Python编程基础及应用_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com 21. 浅尝则止 ...
- 论文浅尝 | 近期论文精选
本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly! TheWebConf 2018 ■ 链接 | https://ww ...
- bo耳机h5使用说明_给想浅尝便携hifi耳机的烧友的一点建议
初入门的烧友,要么是好友推荐品牌或型号,要么是机缘巧合蹭听到了好耳机的声音,心潮澎湃,仿佛一下打开了新世界的大门!原来听的歌,现在听感觉完全不同,有种豁然开朗的感觉,之后,心如小鹿乱撞,恨不得马上买买 ...
最新文章
- JSON.stringify()
- Java中的ThreadLocal详解
- CPU所含有的寄存器
- MyBatis在insert插入操作时返回主键ID
- 基于k8s多集群隔离环境下的devops实现
- 胃部不适,原来好辛苦!
- 黑马博客——详细步骤(九)项目功能的实现之mongoDB数据库添加账号
- mean python_Python mean()方法的详细指南
- kettle使用文件导入到Postgresql出现如下几种问题的总结
- 网站安全之密码明文传输漏洞
- 电脑中的打印驱动程序如何打包_旧驱动程序会教您如何处理笔记本电脑上的黑屏...
- ati自定义分辨率_Windows的自定义显示分辨率实用程序
- Python 实现端口扫描器
- Ubuntu16 网卡rtl8723be 驱动安装
- 学习记录:jmeter添加jp@gc - Hits per Second
- 谷歌浏览器控制台位置调整
- 前端插件日常问题 整理
- html表单中怎么写年份,HTML表单
- 如何正确选择电磁流量计
- 关于使用jQuery前端上传文件
热门文章
- 为什么geany不能执行python程序_python的geany文本编辑器无法执行,如何解决?
- 企业管理培训进入存量时代,博商管理的“熵减”之道
- 理论物理 理论计算机科学,张阳:从理论物理到理论生命
- ios13 AirPods如何看电量?AirPods看电量方法
- 计算机应用2010操作题,计算机应用基础Excel2010综合测试操作步骤参考自测题步骤.doc...
- linux下c语言使用mac地址进行socket通信
- 用手机拍摄视频技巧大全
- 一建和二建可以同时注册吗?
- 关于debian9 桌面管理xfce4的一些快捷键设置
- 逆向wireshark学习SSL协议算法(转)