跳到主要内容

基本操作

本文档介绍房间的基本操作,包括创建/加入房间和退出房间的完整流程。

创建/加入房间

调用 RCRTCEngine 下的 joinRoom 方法加入房间。如果该房间不存在,则会在调用时自动创建并加入。

sessionId 说明

每个房间创建时,融云服务会生成全网唯一的 SessionId,用于后台业务查询和问题追踪。当房间内所有用户退出或被服务器判定掉线后,Session 结束。即使使用相同的 RoomId 重新创建房间,SessionId 也会更新为新值。

参数说明如下:

参数类型说明
roomId字符串房间唯一 ID。支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最长 64 个字符。
configRCRTCRoomConfig房间配置。参见表格下方对 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();