@rongcloud/plugin-wechat-rtc
Version:
@rongcloud/plugin-wechat-rtc
265 lines • 5.3 kB
TypeScript
import { INaviInfo } from '@rongcloud/engine';
import { PullRoomStatusEvent } from '../enums/inner/PullRoomStatusEvent';
/**
* 设置 RTC 人员 inner、outer 数据
*/
export interface IRTCUserData {
[key: string]: string;
}
export interface IRtcTokenData {
rtcToken: string;
}
/**
* 加入 RTC 房间的用户信息
*/
export interface IRTCJoinedInfo {
/**
* 设备 ID
*/
deviceId: string;
/**
* RTC 房间 ID
*/
roomId: string;
/**
* 加入的时间戳
*/
joinTime: number;
}
export interface IRTCRoomInfo {
roomId: string;
roomData: unknown[];
userCount: number;
list: unknown[];
}
export interface IServerRTCRoomEntry {
key: string;
value: string;
status: number;
timestamp: number;
uid: string;
}
export interface IRTCUsers {
users: {
[userId: string]: {
/**
* 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
*/
uris?: string;
/**
* 加房间的身份标识,保存主房间 roomId
*/
extra?: string;
};
};
}
export interface IJoinRTCRoomData extends IRTCUsers {
token: string;
sessionId: string;
roomInfo: {
key: string;
value: string;
}[];
kvEntries: IServerRTCRoomEntry[];
offlineKickTime: number;
codeFormat?: string;
roomCreateTime?: number;
userJoinTime?: number;
version: number;
}
export interface IReqRoomPKOptions {
/**
* 当前房间 ID
*/
roomId: string;
/**
* 被邀请房间 ID
*/
invitedRoomId: string;
/**
* 被邀请用户 ID
*/
invitedUserId: string;
/**
* 本次邀请超时时间
*/
inviteTimeout: number;
/**
* 本次邀请额外信息
*/
inviteInfo: string;
/**
* 本次邀请唯一 ID
*/
inviteSessionId: string;
}
export interface ICancelRoomPKOptions {
/**
* 当前房间 ID
*/
roomId: string;
/**
* 被邀请房间 ID
*/
invitedRoomId: string;
/**
* 被邀请用户 ID
*/
invitedUserId: string;
/**
* 本次邀请额外信息
*/
inviteInfo: string;
/**
* 本次邀请唯一 ID
*/
inviteSessionId: string;
}
export interface IResRoomPKOptions {
/**
* 当前房间 ID
*/
roomId: string;
/**
* 邀请者 ID
*/
inviteUserId: string;
/**
* 邀请者房间 ID
*/
inviteRoomId: string;
/**
* 邀请的 session ID
*/
inviteSessionId: string;
/**
* 需要转发的信息
*/
content: string;
/**
* 同意邀请时要设置的 key, 放在room级别的k和v,新加入房间的能拉取到
*/
key: string;
/**
* 同意邀请时要设置的 value, 放在room级别的k和v,新加入房间的能拉取到
*/
value: string;
/**
* 是否同意邀请
*/
agree: boolean;
}
export interface IEndRoomPKOptions {
/**
* 当前房间 ID
*/
roomId: string;
/**
* 需要结束的连麦房间 ID
*/
endRoomId: string;
/**
* 需要结束连麦的 sessionID
*/
sessionId: string;
/**
* 结束连麦的信息
*/
content: string;
/**
* 需要删除连麦的信息的 keys
*/
keys: string[];
}
export interface IRTCNaviInfo extends INaviInfo {
/**
* jwt token
*/
jwt?: string;
/**
* http3 上报域名
*/
logServer?: string;
/**
* 数据中心
*/
dc?: string;
/**
* openGzip 开启标识,默认是false,开启使用true
*/
openGzip?: boolean;
}
/**
* 通知拉取到的房间增量数据
*/
export interface IRoomStatus {
/**
* 用户 id
*/
userId: string;
/**
* 本次变更的动作类型
*/
event: PullRoomStatusEvent;
/**
* 本次变更的版本号
*/
time: number;
/**
* 用户变更的资源,event 为人员加入或资源变动时有值
* key 包含 uris、cdn_uris、mcu_uris
* value 为字符串数组
*/
userData: {
key: string;
value: string;
}[];
/**
* 切换角色,0 代表非切换身份发生的加入、退出房间行为
*/
switchRoleType: 0;
/**
* 额外的信息
*/
extra: string;
}
/**
* 通知拉取到的房间全量数据
*/
export interface IPullRTCRoomUsersData {
/**
* 用户 id
*/
userId: string;
/**
* 房间内所有资源数据
* key 包含 uris、cdn_uris、mcu_uris
* value 为字符串数组
*/
userData: {
key: string;
value: string;
}[];
}
/**
* 通知拉取到的房间数据
*/
export interface IPullRTCRoomStatus {
/**
* 是否是全量数据
*/
bFullStatus: boolean;
/**
* 当前房间的最大版本号
*/
version: number;
/**
* 如果是全量数据,usersData 不为空,给的是房间全部的人以及发布的资源
*/
usersData: IPullRTCRoomUsersData[];
/**
* 房间增量数据
*/
roomStatus: IRoomStatus[];
}
//# sourceMappingURL=interface.d.ts.map