UNPKG

@fork-anyone/node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

130 lines (129 loc) 7.72 kB
import { EventEmitter } from 'eventemitter3'; import { IMMessage, MessageSetting, NIMMessageType } from '../nim_def/msglog_def'; import { BroadcastMessage, FileUpPrgCallback, IMAudio, IMFile, IMImage, IMLocation, IMMessageSendOption, IMVideo, MessageFilterCallback, NIMTalkAPI, RecallMsgNotify, RecallMsgsCallback, SendMessageArc, TeamNotificationFilterCallback, StopStreamingMessageParam, RedoAIMessageParam } from '../nim_def/talk_def'; import { NIMResCode } from '../nim_def/client_def'; import { NIMSessionType } from 'ts/node-nim'; export declare interface NIMTalkEvents { /** 发送消息回调 */ sendMsg: [SendMessageArc]; /** 接收消息 */ receiveMsg: [IMMessage]; /** 批量接收消息,如离线/漫游消息 */ receiveMsgs: [Array<IMMessage>]; /** 消息撤回通知 */ recallMsgs: [number, Array<RecallMsgNotify>]; /** 接收广播消息 */ receiveBroadcastMsg: [BroadcastMessage]; /** 批量接收广播消息 */ receiveBroadcastMsgs: [Array<BroadcastMessage>]; /** 消息变更通知 */ messageChanged: [IMMessage]; } export declare class NIMTalk extends EventEmitter<NIMTalkEvents> { talk: NIMTalkAPI; constructor(sdk: any); /** 注册全局回调 */ initEventHandlers(): void; /** 发送消息 * @param json_msg 消息体Json字符串,可以通过CreateXXXMessage方法自动创建 * @param jsonExtension json扩展参数(备用,目前不需要) * @param pcb 上传进度的回调函数, 如果发送的消息里包含了文件资源,则通过此回调函数通知上传进度 * @return void 无返回值 */ sendMsg(msg: IMMessage, jsonExtension?: string, progressCb?: FileUpPrgCallback | null): void; /** * 携带配置参数发送消息 * @param msg 消息体 * @param option 配置参数 * @param progressCb 上传进度的回调函数 * @return void 无返回值 */ sendMessageWithOption(msg: IMMessage, option: IMMessageSendOption, progressCb: FileUpPrgCallback | null): void; /** 停止正在发送中的消息(目前只支持发送文件消息时的终止) * @param client_msg_id 停止发送的消息客户端id * @param type 停止发送的消息类型 * @param jsonExtension json扩展参数(备用,目前不需要) * @return void 无返回值 */ stopSendMsg(clientMsgId: string, type: NIMMessageType, jsonExtension?: string): void; /** 撤回消息 * @param msg 消息 * @param notify_msg 自定义通知消息 * @param cb 回调 * @param param 额外的参数,包含apnstext、pushpayload、jsonExtension、env_config、user_data * @note * <pre> * 200:成功 * 414:参数错误 * 508:撤回时间超过配制有效期,默认是2分钟 * 10414:本地错误码,参数错误 * 10508:本地错误码,超过配置有效期或者所需参数不存在 * </pre> */ recallMsg(msg: IMMessage, notify_msg: string, cb?: RecallMsgsCallback | null, apnstext?: string, pushpayloadconst?: string, jsonExtension?: string): Promise<[NIMResCode, Array<RecallMsgNotify>]>; /** * @brief 回复消息 thread 聊天场景,携带指定配置 * @param formerMsg 被回复消息的消息体 * @param replyMsg 回复消息的消息体,可通过各种 createxxxmessage 接口创建 * @param option 配置参数 * @param progressCb 传进度的回调函数, 如果发送的消息里包含了文件资源,则通过此回调函数通知上传进度 * @return void 无返回值 */ replyMessageWithOption(formerMsg: IMMessage, replyMsg: IMMessage, option: IMMessageSendOption, progressCb: FileUpPrgCallback): void; /** 创建文本消息 */ createTextMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, content: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建文件消息 */ createFileMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, file: IMFile, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建图片消息 */ createImageMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, image: IMImage, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建语音消息 */ createAudioMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, audio: IMAudio, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建视频消息 */ createVideoMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, video: IMVideo, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建位置消息 */ createLocationMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, location: IMLocation, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建提醒消息 */ createTipMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, tip: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage; /** 创建转发消息 */ createRetweetMessage(sourceMessage: IMMessage, client_msg_id: string, session_type: NIMSessionType, receiver_id: string, msg_setting: MessageSetting, timetag: number): IMMessage; /** 从消息体中获取附件(图片、语音、视频等)的本地路径 * @param msg 消息 * @return string 消息如果有附件,不管是否已下载,返回附件的本地路径;消息如果没有附件,返回空字符串。 */ getAttachmentPathFromMsg(msg: IMMessage): string; /** 回复消息thread 聊天场景 * @param formerMsg 被回复消息的消息体 * @param replyMsg 回复消息的消息体,可通过各种createxxxmessage接口创建 * @param progressCb 传进度的回调函数, 如果发送的消息里包含了文件资源,则通过此回调函数通知上传进度 * @return void 无返回值 */ replyMessage(formerMsg: IMMessage, replyMsg: IMMessage, progressCb: FileUpPrgCallback): void; /** (全局回调)注册消息过滤接口 (堵塞线程,谨慎使用,避免耗时行为) * @param[in] filter 过滤接口 * @param[in] json_extension json扩展参数(备用,目前不需要) * @return void 无返回值 */ regMessageFilter(cb: MessageFilterCallback | null, jsonExtension?: string): void; /** (全局回调)注册群通知过滤接口 (堵塞线程,谨慎使用,避免耗时行为) * @param[in] json_extension json扩展参数(备用,目前不需要) * @param[in] filter 过滤接口 * @return void 无返回值 */ regTeamNotificationFilter(cb: TeamNotificationFilterCallback | null, jsonExtension?: string): void; /** * @brief 停止流式消息输出 * @param message 要停止的消息体 * @param parameter 停止参数,@see StopStreamingMessageParam * @return Promise<NIMResCode> * @since v10.8.30 */ stopStreamingMessage(message: IMMessage, parameter: StopStreamingMessageParam): Promise<NIMResCode>; /** * @brief 重发流式消息 * @param message 要重发的消息体 * @param parameter 重发参数,@see RedoAIMessageParam * @return Promise<NIMResCode> * @since v10.8.30 */ redoAIMessage(message: IMMessage, parameter: RedoAIMessageParam): Promise<NIMResCode>; }