基本操作
本文档介绍房间的基本操作,包括创建/加入房间和退出房间的完整流程。
创建/加入房间
调用 RCRTCEngine 下的 joinRoom 方法加入房间。如果该房间不存在,则会在调用时自动创建并加入。
sessionId 说明
每个房间创建时,融云服务会生成全网唯一的 SessionId,用于后台业务查询和问题追踪。当房间内所有用户退出或被服务器判定掉线后,Session 结束。即使使用相同的 RoomId 重新创建房间,SessionId 也会更新为新值。
参数说明如下:
| 参数 | 类型 | 说明 |
|---|---|---|
| roomId | 字符串 | 房间唯一 ID。支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最长 64 个字符。 |
| config | RCRTCRoomConfig | 房间配置。参见表 格下方对 RCRTCRoomConfig 的说明。 |
| 返回值 | Promise<ICompletionResult> | 加入房间结果 Promise |
RCRTCRoomConfig 为房间配置,包含以下设置:
roomType:指定房间类型。joinType:用户进行多端登录时的加入策略。假设当前账号已在其他端加入房间,设置为RCRTCJoinRoomType.KICK会导致在用户其他端加入房间时踢掉已在房间的同账号用户。设置为RCRTCJoinRoomType.REFUSE,则会保留已在房间的同账号用户的登录状态,当前尝试登录的用户会返回加入失败。
typescript
// 房间 ID
let roomId: string = "roomId";
// 房间配置信息
let config: RCRTCRoomConfig = new RCRTCRoomConfig();
// 加入房间
let rtcRoom = await RCRTCEngineInstance.joinRoom(roomId, config);
退出房间
退出房间需要按照正确的顺序操作,确保资源得到妥善释放。
操作步骤
步骤一:关闭视频采集(如果已开启)
如果用户开启了视频采集,在调用 leaveRoom 之前必须手动关闭视频采集。
typescript
RCRTCEngineInstance.defaultVideoStream.stopCapture();
提示
离开房间接口(leaveRoom)不会自动关闭视频采集。如不主动关闭,可能会导致耗电量增加、资源未释放等问题。
步骤二:退出房 间
调用 RCRTCEngine 下的 leaveRoom 接口退出房间,SDK 内部会自动取消所有已发布和订阅的资源。
typescript
let res = await RCRTCEngineInstance.leaveRoom();