UNPKG

@hongtangyun/rooms-sdk

Version:

JavaScript SDK Client for hongtangyun rooms-sdk.

471 lines (470 loc) 11.4 kB
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']]; };