房间管理
实例化全局房间 Session 对象
在加入房间之前,我们需要实例化一个全局 Session 对象。之后所有和房间相关的操作都会通过调用这个对象的方法来实现。可以调用如下代码实例化全局房间 Session 对象。
import * as QNRTC from "pili-rtc-web";
const myRoom = new QNRTC.TrackModeSession();
无论重复几次加入退出房间,都需要确保一个页面里只有一个房间 Session 对象
加入房间
SDK 通过传入 RoomToken 来完成加入房间。RoomToken 是一个包含了一次连麦所需要的主要信息的 token,这些信息包括 七牛的账户标识、连麦的应用 ID(appId)、连麦的房间号 (roomName)、连麦的用户名(userId)、有效期等等。
如果想要手动生成 token,可以阅读这篇 接入指南。如果想用服务端自动生成 token,可以阅读服务端开发说明。
await myRoom.joinRoomWithToken(YOUR_ROOM_TOKEN);
踢人
如果您是以管理员身份签发的 RoomToken 加入,就可以通过下面的方法将房间中其他用户强制踢出房间。
await myRoom.kickoutUser("USERID");
离开房间
离开房间后 SDK 会自动和房间断开连接并销毁所有订阅音视频对象,但不会清理采集到的音视频对象。如果离开房间后想再次加入房间,重新调用加入房间的方法即可。
myRoom.leaveRoom();
可以配合浏览器的 onbeforeunload 事件在每次页面即将被关闭或者刷新时自动离开房间