node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
109 lines (108 loc) • 4.98 kB
TypeScript
import { NIMResCode } from './client_def';
import { BoolStatus, NIMMessageFeature } from './msglog_def';
import { SendMessageArc } from './talk_def';
/** @enum NIMSysMsgStatus 系统消息状态 */
export declare enum NIMSysMsgStatus {
/** 默认,未读 */
kNIMSysMsgStatusNone = 0,
/** 收到消息,通过 */
kNIMSysMsgStatusPass = 1,
/** 收到消息,拒绝 */
kNIMSysMsgStatusDecline = 2,
/** 收到消息,已读 */
kNIMSysMsgStatusRead = 3,
/** 已删 */
kNIMSysMsgStatusDeleted = 4,
/** 已失效 */
kNIMSysMsgStatusInvalid = 5
}
/** @enum NIMSysMsgType 系统消息内容类型 */
export declare enum NIMSysMsgType {
/** 申请入群 */
kNIMSysMsgTypeTeamApply = 0,
/** 拒绝入群申请 */
kNIMSysMsgTypeTeamReject = 1,
/** 邀请进群 kNIMSysMsgKeyAttach : {"team_info":team_info, "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */
kNIMSysMsgTypeTeamInvite = 2,
/** 拒绝邀请 */
kNIMSysMsgTypeTeamInviteReject = 3,
/** 加好友, kNIMSysMsgKeyAttach: {"vt":verify_type} */
kNIMSysMsgTypeFriendAdd = 5,
/** 删除好友 */
kNIMSysMsgTypeFriendDel = 6,
/** 点对点透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */
kNIMSysMsgTypeCustomP2PMsg = 100,
/** 群透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */
kNIMSysMsgTypeCustomTeamMsg = 101,
/** 超大群透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */
kNIMSysMsgTypeCustomSuperTeamMsg = 103,
/** 未知类型,本地使用,发送时勿使用,作为默认 */
kNIMSysMsgTypeUnknown = 1000
}
export interface SysMessage {
/** 通知时间戳(毫秒) */
timetag_?: number;
/** 通知类型 */
type_?: NIMSysMsgType;
/** 接收者ID */
receiver_accid_?: string;
/** 发送者ID */
sender_accid_?: string;
/** 只读,SDK不转发该字段 */
content_?: string;
/** 通知附件 */
attach_?: string;
/** 通知ID */
id_?: string;
/** 通知状态 */
status_?: NIMSysMsgStatus;
/** 消息属性设置 */
msg_setting_?: SysMessageSetting;
/** 通知错误码 */
rescode_?: NIMResCode;
/** 通知属性 */
feature_?: NIMMessageFeature;
/** 总计的通知未读数 */
total_unread_count_?: number;
/** 通知ID(客户端) */
client_msg_id_?: string;
/** v8.2.0 第三方回调返回的自定义字段 */
callbac_ext_?: string;
}
export interface SysMessageSetting {
/** 是否需要推送 */
need_push_?: BoolStatus;
/** 是否要做消息计数 */
push_need_badge_?: BoolStatus;
/** 需要推送昵称 */
push_need_prefix_?: BoolStatus;
/** 是否支持离线消息 */
need_offline_?: BoolStatus;
/** 第三方自定义的推送属性,长度2048 */
push_payload_?: object;
/** 自定义推送文案,长度限制200字节 */
push_content_?: string;
/** (功能暂时不开放)是否需要过易盾反垃圾 */
anti_spam_enable_?: BoolStatus;
/** (功能暂时不开放)(可选)开发者自定义的反垃圾字段 */
anti_spam_content_?: string;
/** (可选) 指向自定义抄送的配置 */
env_config_?: string;
}
export type SysmsgCallback = (result: SysMessage) => void;
export type SendCustomSysmsgCallback = (result: SendMessageArc) => void;
export type NotifySingleSysmsgCallback = (res_code: NIMResCode, msg_id: number, unread_count: number) => void;
export type NotifySysmsgResCallback = (res_code: NIMResCode, unread_count: number) => void;
export type QuerySysmsgCallback = (count: number, unread_count: number, result: Array<SysMessage>) => void;
export interface NIMSysMsgAPI {
InitEventHandlers(): void;
SendCustomNotificationMsg(msg: SysMessage): void;
QueryMsgAsync(limit_count: number, last_time: number, cb: QuerySysmsgCallback | null, jsonExtension: string): boolean;
QueryUnreadCount(cb: NotifySysmsgResCallback | null, jsonExtension: string): void;
SetStatusAsync(msg_id: string, status: NIMSysMsgStatus, cb: NotifySingleSysmsgCallback | null, jsonExtension: string): boolean;
ReadAllAsync(cb: NotifySysmsgResCallback | null, jsonExtension: string): void;
DeleteAsync(msg_id: string, cb: NotifySingleSysmsgCallback | null, jsonExtension: string): boolean;
DeleteAllAsync(cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean;
SetStatusByTypeAsync(type: NIMSysMsgType, status: NIMSysMsgStatus, cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean;
DeleteByTypeAsync(type: NIMSysMsgType, cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean;
}