课程名称: SpringBoot+Vue3 项目实战,打造企业级在线办公系统
课程章节: 第6章 TRTC在线视频会议
主讲老师: 神思者
课程内容
上一章在Web页面上可以创建各种会议申请,然后切换到部门经理或者总经理身份,可以对这些会议申请执行审批。线下会议还好说,到了开会的的时候,参会人都去某个会议室。至于说这些人怎么线下开会,程序不用过多干预。但是线上会议,参会人要用视频方式交流,这就得开辟视频会议室了。
视频会议室要依赖于腾讯云的TRTC技术,帮我们把参会人的视频数据复制,然后转发给其他的参会人。这样不会出现因为参会人的增多,导致视频质量下降。如果不使用TRTC技术,仅凭我们本地的带宽,参会人越多,大家看到的视频质量就越差。
配置后端项目
之前已经开通了腾讯云TRTC服务,所以我们到后端项目上配置一下。前端页面想要连接上TRTC服务器上面的视频会议室,首先需要创建TrtcClient对象,创建这个对象需要用到3个参数,分别是TRTC的AppID,用户UserId,还有用户签名。用户签名是用TRTC的AppID、密钥和UserId生成的。如果用户签名在前端页面计算生成,势必我们要在前端页面保存TRTC的AppID和密钥,任意开发者查看HTML源代码都能看到这些信息,所以决不能在前端页面生成用户签名。
正确的做法是在后端项目生成用户签名,我们在config
包里面创建tencent
包,然后创建一个TrtcUtil
工具类,用来生成用户签名。
然后在MeetingController.java
类中定义获取用户签名的Web方法。
查询视频会议室RoomID
每个视频会议室都有RoomID,这个RoomID是保存在Redis里面的,我们可以通过会议的UUID查找到RoomID。但是只有在会议开始前20分钟,工作流项目的定时器才会生成这个RoomID。
用户在前端页面进入到meeting_video.vue
页面之后,需要通过Ajax查询这个会议室的RoomID,然后让TrtcClient连接到视频会议室,所以我们要写后端的Web代码返回RoomID。
1. 编写业务层代码
在MeetingService.java
接口中,定义抽象方法。
public interface MeetingService {
……
public Long searchRoomIdByUUID(String uuid);
}
在MeetingServiceImpl.java
类中,实现抽象方法。
public class MeetingServiceImpl implements MeetingService {
@Autowired
private RedisTemplate redisTemplate;
……
@Override
public Long searchRoomIdByUUID(String uuid) {
if (redisTemplate.hasKey(uuid)) {
Object temp = redisTemplate.opsForValue().get(uuid);
long roomId = Long.parseLong(temp.toString());
return roomId;
}
return null;
}
}
2. 编写Web层代码
创建SearchRoomIdByUUIDForm.java
类,封装Ajax提交的请求。
@Data
@Schema(description = "查询在线会议室房间ID")
public class SearchRoomIdByUUIDForm {
@NotBlank(message = "uuid不能为空")
@Schema(description = "uuid")
private String uuid;
}
在MeetingController.java
类中,定义Web方法。
public class MeetingController {
……
@PostMapping("/searchRoomIdByUUID")
@Operation(summary = "查询会议房间RoomID")
@SaCheckLogin
public R searchRoomIdByUUID(@Valid @RequestBody SearchRoomIdByUUIDForm form) {
Long roomId = meetingService.searchRoomIdByUUID(form.getUuid());
return R.ok().put("roomId", roomId);
}
}
课程收获
- 了解了腾讯的TRTC服务的基本使用方式。
- 完成了应用于腾讯TRTC服务之间的调用方式。
- 完成了用户签名的生成。
课程截图
共同学习,写下你的评论
评论加载中...
作者其他优质文章