浅尝不辄止系列之试试腾讯云的 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社区

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为自己_带盐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值