@fork-anyone/node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
130 lines (129 loc) • 7.72 kB
TypeScript
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>;
}