@hongtangyun/rooms-sdk
Version:
JavaScript SDK Client for hongtangyun rooms-sdk.
471 lines (470 loc) • 11.4 kB
TypeScript
import { UserRole } from '../common/Enums';
/**
* 房间监听事件名
*/
export type RoomsEventsNameType = '___RoomsEvents___';
/**
* 用户系统角色
*/
export declare enum ToSystemEnum {
/**
* 当前房间所有用户
*/
'ALL_USER' = -99,
/**
* 服务端系统用户
*/
'SYSTEM_USER' = -100
}
export declare enum ActionsEnum {
/**
* 系统消息-房间消息推道
*/
'system.ROOM_NOTIFICATION' = "system.ROOM_NOTIFICATION",
/**
* 系统消息-房间信息添加
*/
'system.ROOM_INFO_ADD' = "system.ROOM_INFO_ADD",
/**
* 系统消息-房间信息更新
*/
'system.ROOM_INFO_UPDATE' = "system.ROOM_INFO_UPDATE",
/**
* 系统消息-房间删除
*/
'system.ROOM_INFO_DELETE' = "system.ROOM_INFO_DELETE",
/**
* 系统消息-房间用户添加
*/
'system.ROOM_USER_ADD' = "system.ROOM_USER_ADD",
/**
* 系统消息-房间用户列新
*/
'system.ROOM_USER_UPDATE' = "system.ROOM_USER_UPDATE",
/**
* 系统消息-房间用户删除
*/
'system.ROOM_USER_DELETE' = "system.ROOM_USER_DELETE",
/**
* 系统消息-当前有其它设备正边接中
*/
'system.USER_OTHER_CONNECTED' = "system.USER_OTHER_CONNECTED",
/**
* 系统消息-用户在其它地方登录 此连接将断开
*/
'system.USER_SQUEEZE_CONNECTED' = "system.USER_SQUEEZE_CONNECTED",
/**
* 系统消息-系统时间
*/
'system.SERVER_TIME' = "system.SERVER_TIME",
/**
* RTC-webrtc-创建
*/
'rtc.channel.create' = "rtc.channel.create",
/**
* RTC加入频道
*/
'rtc.channel.join' = "rtc.channel.join",
/**
* RTC快速切换直播频道
*/
'rtc.channel.leave' = "rtc.channel.leave",
/**
* RTC离开频道
*/
'rtc.leaveChannel' = "rtc.leaveChannel",
/**
* RTC启用音频模块
*/
'rtc.audio.enable' = "rtc.audio.enable",
/**
* RTC关闭音频模块
*/
'rtc.audio.disable' = "rtc.audio.disable",
/**
* RTC取消或恢复发布本地音频流
*/
'rtc.audio.mute.local' = "rtc.audio.mute.local",
/**
* RTC取消或恢复订阅指定远端用户的音频流
*/
'rtc.audio.mute.remote' = "rtc.audio.mute.remote",
/**
* RTC取消或恢复订阅所有远端用户的音频流
*/
'rtc.audio.mute.remote.all' = "rtc.audio.mute.remote.all",
/**
* RTC启用视频模块
*/
'rtc.video.enable' = "rtc.video.enable",
/**
* RTC关闭视频模块
*/
'rtc.video.disable' = "rtc.video.disable",
/**
* RTC切换前置/后置摄像头
*/
'rtc.vaido.camera.switch' = "rtc.vaido.camera.switch",
/**
* RTC取消或恢复发布本地视频流
*/
'rtc.video.mute.local' = "rtc.video.mute.local",
/**
* RTC取消或恢复订阅指定远端用户的视频流
*/
'rtc.video.mute.remote' = "rtc.video.mute.remote",
/**
* RTC取消或恢复订阅指定远端用户的视频流
*/
'rtc.video.mute.remote.all' = "rtc.video.mute.remote.all",
/**
* RTC录制开始
*/
'rtc.record.start' = "rtc.video.start",
/**
* RTC录制停止
*/
'rtc.record.stop' = "rtc.video.stop",
/**
* 聊天-发信消息
*/
'chat.send' = "chat.send",
/**
* 聊天-已读
*/
'chat.read' = "chat.read",
/**
* 文件操作-发送文件
*/
'file.send' = "file.send",
/**
* 文件操作-删除文件
*/
'file.delete' = "file.delete",
/**
* 自定义操作-
*/
'custom.action' = "custom.action",
/**
* 房间操作- 加入房间
*/
'room.join' = "room.join",
/**
* 房间操作- 离开房间
*/
'room.leave' = "room.leave",
/**
* 房间操作- 加入私有自定义房间
*/
'room.customroom.join' = "room.customroom.join",
/**
* 房间操作- 离开私有自定义房间
*/
'room.customroom.leave' = "room.customroom.leave",
/**
* 房间操作- 查看自定义房间
*/
'room.customroom.allrooms' = "room.customroom.allrooms",
/**
* 房间操作- 公告发布
*/
'room.notice.publish' = "room.notice.publish",
/**
* 房间操作- 公告撤销
*/
'room.notice.unpublish' = "room.notice.unpublish",
/**
* 房间操作- 公告已读
*/
'room.notice.read' = "room.notice.read",
/**
* 房间操作- 异常发布
*/
'room.abnormal.publish' = "room.abnormal.publish",
/**
* 房间操作- 异常已读
*/
'room.abnormal.read' = "room.abnormal.read",
/**
* 房间用户- 是否在线
*/
'room.user.online' = "room.user.online",
/**
* 房间录制- 开始
*/
'room.record.start' = "room.record.start",
/**
* 房间录制- 结束
*/
'room.record.stop' = "room.record.stop",
/**
* 房间录制- 当前状态
*/
'room.record.status' = "room.record.status",
'client.connect' = "client.connect",
'client.connect_error' = "client.connect_error",
'client.disconnect' = "client.disconnect",
'client.err' = "client.err"
}
export type RoomEvents = {
uuid: string;
action: keyof IRoomActions;
data: IRoomActions[RoomEvents['action']];
roomid: string;
publisher: number;
role?: UserRole;
to?: number | string | Array<number | string> | ToSystemEnum;
customroom?: string[];
};
export interface SystemActions {
'system.ROOM_NOTIFICATION': {
code: number;
type: 'success' | 'info' | 'warning' | 'error';
message: string;
description?: string;
};
'system.ROOM_INFO_ADD': {};
'system.ROOM_INFO_UPDATE': {};
'system.ROOM_INFO_DELETE': {};
'system.ROOM_USER_ADD': {};
'system.ROOM_USER_UPDATE': {};
'system.ROOM_USER_DELETE': {};
'system.USER_OTHER_CONNECTED': {};
'system.USER_SQUEEZE_CONNECTED': {};
'system.SERVER_TIME': {};
/**
* RTC录制开始
*/
'system.RTC_RECORD_START': {
url: string;
token: string;
maxRecordingHour: number;
resourceId: string;
sid: string;
recordUrl: string;
};
/**
* RTC录制停止
*/
'system.RTC_RECORD_STOP': {
resourceId: string;
sid: string;
recordUrl: string;
};
}
export interface ClientActions {
'client.connect': {};
'client.connect_error': {};
'client.disconnect': {};
'client.err': {
message: string;
};
}
/**
* webRTC 视频
*/
export interface RtcActions {
/**
* 创建RTC频道
*/
'rtc.channel.create': {
channel: string;
};
/**
* RTC加入频道
*/
'rtc.channel.join': {
channel: string;
};
/**
* RTC快速切换直播频道
*/
'rtc.channel.switch': {};
/**
* RTC离开频道
*/
'rtc.channel.leave': {};
/**
* RTC启用音频模块
*/
'rtc.audio.enable': {};
/**
* RTC关闭音频模块
*/
'rtc.audio.disable': {};
/**
* RTC取消或恢复发布本地音频流
*/
'rtc.audio.mute.local': {};
/**
* RTC取消或恢复订阅指定远端用户的音频流
*/
'rtc.audio.mute.remote': {};
/**
* RTC取消或恢复订阅所有远端用户的音频流
*/
'rtc.audio.mute.remote.all': {};
/**
* RTC启用视频模块
*/
'rtc.video.enable': {};
/**
* RTC关闭视频模块
*/
'rtc.video.disable': {};
/**
* RTC切换前置/后置摄像头
*/
'rtc.vaido.camera.switch': {};
/**
* RTC取消或恢复发布本地视频流
*/
'rtc.video.mute.local': {};
/**
* RTC取消或恢复订阅指定远端用户的视频流
*/
'rtc.video.mute.remote': {};
/**
* RTC取消或恢复订阅所有远端用户的视频流
*/
'rtc.video.mute.remote.all': {};
/**
* RTC录制开始
*/
'rtc.record.start': {};
/**
* RTC录制停止
*/
'rtc.record.stop': {};
}
/**
* 文本消息
*/
export interface ChatActions {
'chat.send': {
id: string | number;
text: string;
createdAt: string | number;
user: {
id: string | number;
name?: string;
avatar?: string;
};
to?: {
id: string | number;
name?: string;
avatar?: string;
};
image?: string;
video?: string;
audio?: string;
system?: boolean;
sent?: boolean;
received?: boolean;
pending?: boolean;
};
'chat.read': {
id?: string;
roomTag?: string;
time: number | Date;
};
}
/**
* 文件操作
*/
export interface FileActions {
'file.send': Array<{
name: string;
url: string;
}>;
'file.delete': Array<{
id: string;
}>;
}
/**
* 自定义动作
*/
export interface CustomActions {
'custom.action': any;
}
export interface RoomActions {
/**
* 加入房间
*/
'room.join': {};
/**
* 离开房间
*/
'room.leave': {};
/**
* 加入私有自定义房间
*/
'room.customroom.join': {
roomid: string;
};
/**
* 离开私有自定义房间
*/
'room.customroom.leave': {
roomid: string;
};
/**
* 所有加入的自定义房间
*/
'room.customroom.allrooms': {
rooms?: string[];
};
'room.notice.publish': {
id: string;
model: string;
type: string;
data: string;
};
'room.notice.unpublish': {
id: string;
};
'room.notice.read': {
time: string;
};
'room.abnormal.publish': {
id: string;
deviceid: string;
platform: string;
eventname: string;
screenshots: string[];
note?: string;
};
'room.abnormal.read': {
time: string;
};
'room.user.online': {
isOnline: boolean;
/**
* 设备信息唯一uuid
*/
uuid?: string;
/**
* 客户端
* desktop | browser | app
*/
client?: string | 'unknown';
/**
* 系统
* darwin | win32 | linux | android | ios
*/
platform?: string | 'unknown';
ip?: string | 'unknown';
ua?: string | 'unknown';
};
'room.record.start': {};
'room.record.stop': {};
'room.record.status': {
status: boolean;
};
}
export interface IRoomActions extends SystemActions, ClientActions, RtcActions, ChatActions, FileActions, CustomActions, RoomActions {
}
export type RoomActionData = {
action: keyof IRoomActions;
data: IRoomActions[RoomActionData['action']];
};