import { EventEmitter, ILogger, IReceivedMessage, IRuntime, RTCPluginContext } from '@rongcloud/engine'; import { RCCallErrorCode } from './enums/RCCallCode'; import { IUserProfile } from './interfaces/IStateMachine'; import { IAcceptMsgOptions, IHungupMsgOptions, IInviteMsgOptions, IMediaModifyMsgOptions, IMemberModifyMsgOptions, IMsgListener, IRingingMsgOptions } from './interfaces/IMessageHandler'; import { RCCallStateMachine } from '..'; type MsgListenerKeys = keyof IMsgListener; /** * 消息接收处理: 在线消息、离线消息 * 发送消息处理: 发送不同类型消息封装 */ export declare class CallMessageHandler extends EventEmitter { private readonly _context; private readonly _runtime; private readonly _logger; /** * 离线消息处理时间间隔 */ private readonly _offlineMsgItv; private readonly _getStateMachine; private _watchers; private _userInfo; private _msgBufferList; private _hadHandleMsgTimer; private _offlineRecorder; private _deviceId; constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger, /** * 离线消息处理时间间隔 */ _offlineMsgItv: number, _getStateMachine: (callId: string) => RCCallStateMachine | null); private _onMessage; /** * 在线消息抛给状态机处理 */ private _onRecvOnlineCallMsg; /** * 消息 buffer 列表处理逻辑 * 1、每 20ms 检查一次 buffer list * 2、取出已经延迟 200 的消息列表进行消费 | 无延迟 200ms 内消息直接递归 * 3、消费分为 离线消息消费逻辑、在线消息消费逻辑,消费后递归 */ private _handleBufferMsgs; registerEventListener(listener: IMsgListener): void; registerStateMachineEvent(callId: string, funcName: MsgListenerKeys, event: (...args: any[]) => void): void; unregisterStateMachineEvent(callId: string): void; registerUserInfo(userInfo: IUserProfile): void; /** * 发送 IM 消息 */ private _sendCallMessage; /** * 发送邀请消息 */ sendInvite(options: IInviteMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; /** * 发送人员变更消息 */ sendMemeberModify(options: IMemberModifyMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; /** * 发送响铃消息 */ sendRinging(options: IRingingMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; /** * 发送同意接听消息 */ sendAccept(options: IAcceptMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; /** * 发送挂断消息 */ sendHungup(options: IHungupMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; /** * 发送媒体变更消息 */ sendMediaModify(options: IMediaModifyMsgOptions): Promise<{ code: RCCallErrorCode; message?: IReceivedMessage | undefined; }>; } export {}; //# sourceMappingURL=MessageHandler.d.ts.map