UNPKG

node-nim

Version:

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

254 lines (253 loc) 9.43 kB
import EventEmitter from 'eventemitter3'; import { V2NIMChatroomMessage, V2NIMChatroomMember, V2NIMChatroomInfo, V2NIMSendChatroomMessageParams, V2NIMSendChatroomMessageResult, V2NIMChatroomMemberQueryOption, V2NIMChatroomMemberListResult, V2NIMChatroomMessageListOption, V2NIMChatroomMemberRoleUpdateParams, V2NIMChatroomUpdateParams, V2NIMAntispamConfig, V2NIMChatroomSelfMemberUpdateParams, V2NIMChatroomTagTempChatBannedParams, V2NIMChatroomTagMemberOption, V2NIMChatroomLocationConfig, V2NIMChatroomTagsUpdateParams, V2NIMChatroomTagMessageOption } from 'ts/v2_def/v2_nim_struct_def'; import { V2NIMChatroomMemberRole } from 'ts/v2_def/v2_nim_enum_def'; export declare interface V2NIMChatroomListener { /** 收到新消息 */ receiveMessages: [V2NIMChatroomMessage[]]; /** 聊天室成员进入 */ chatroomMemberEnter: [V2NIMChatroomMember]; /** 聊天室成员退出 */ chatroomMemberExit: [string]; /** 聊天室成员角色变更 */ chatroomMemberRoleUpdated: [V2NIMChatroomMemberRole, V2NIMChatroomMember]; /** 聊天室成员信息更新 */ chatroomMemberInfoUpdated: [V2NIMChatroomMember]; /** 自己的禁言状态变更 */ selfChatBannedUpdated: [boolean]; /** 自己的临时禁言状态变更 */ selfTempChatBannedUpdated: [boolean, number]; /** 聊天室信息更新 */ chatroomInfoUpdated: [V2NIMChatroomInfo]; /** 聊天室禁言状态更新 */ chatroomChatBannedUpdated: [boolean]; /** 消息撤回回调 */ messageRevokedNotification: [string, number]; /** 角色标签更新 */ chatroomTagsUpdated: [string[]]; /** 本端发送消息状态回调 */ sendMessage: [V2NIMChatroomMessage]; } /** @brief 聊天室服务 */ export declare class V2NIMChatroomService extends EventEmitter<V2NIMChatroomListener> { instance: any; constructor(instanceId: number); /** * @brief 发送消息 * @param message 需要发送的消息体 * @param params 发送消息相关配置参数 * @returns void * @example * ```javascript * const message = V2NIMChatroomMessageCreator.createTextMessage('Hello NTES IM') * await chatroomService.sendMessage(message, {}) * ``` */ sendMessage(message: V2NIMChatroomMessage, params: V2NIMSendChatroomMessageParams): Promise<V2NIMSendChatroomMessageResult>; /** * @brief 取消上传消息附件 * @param message 要取消上传的文件消息 * @returns void * @example * ```javascript * await chatroomService.cancelMessageAttachmentUpload(message) * ``` */ cancelMessageAttachmentUpload(message: V2NIMChatroomMessage): Promise<void>; /** * @brief 查询聊天室成员列表 * @param queryOption 查询选项 * @returns V2NIMChatroomMemberListResult * @example * ```javascript * const result = await chatroomService.getMemberListByOption({ * limit: 10 * }) * console.log(result) * ``` */ getMemberListByOption(queryOption: V2NIMChatroomMemberQueryOption): Promise<V2NIMChatroomMemberListResult>; /** * @brief 查询聊天室消息列表 * @param option 查询选项 * @returns Array<V2NIMChatroomMessage> * @example * ```javascript * const result = await chatroomService.getMessageList({ * limit: 10 * }) * console.log(result) * ``` */ getMessageList(option: V2NIMChatroomMessageListOption): Promise<Array<V2NIMChatroomMessage>>; /** * @brief 更新聊天室成员角色 * @param accountId 聊天室成员 id * @param upadateParams 更新参数 * @returns void * @example * ```javascript * await chatroomService.updateMemberRole('accountId', { * memberRole: 2 * }) * ``` */ updateMemberRole(accountId: string, upadateParams: V2NIMChatroomMemberRoleUpdateParams): Promise<void>; /** * @brief 设置聊天室成员黑名单状态 * @param accountId 聊天室成员 id * @param blocked 黑名单状态 * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.setMemberBlockedStatus('accountId', true, 'your notification extension') * ``` */ setMemberBlockedStatus(accountId: string, blocked: boolean, notificationExtension: string): Promise<void>; /** * @brief 设置聊天室成员禁言状态 * @param accountId 聊天室成员 id * @param chatBanned 禁言状态 * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.setMemberChatBannedStatus('accountId', true, 'your notification extension') * ``` */ setMemberChatBannedStatus(accountId: string, chatBanned: boolean, notificationExtension: string): Promise<void>; /** * @brief 设置聊天室成员临时禁言状态 * @param accountId 聊天室成员 id * @param tempChatBannedDuration 临时禁言时长, 单位秒, 0 表示取消临时禁言 * @param notificationEnabled 是否发送通知 * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.setMemberTempChatBanned('accountId', 10, true, 'your notification extension') * ``` */ setMemberTempChatBanned(accountId: string, tempChatBannedDuration: number, notificationEnabled: boolean, notificationExtension: string): Promise<void>; /** * @brief 更新聊天室信息 * @param updateParams 更新参数 * @param antispamConfig 反垃圾配置 * @returns void * @example * ```javascript * await chatroomService.updateChatroomInfo({ * roomName: 'new room name' * }, {}) * ``` */ updateChatroomInfo(updateParams: V2NIMChatroomUpdateParams, antispamConfig: V2NIMAntispamConfig): Promise<void>; /** * @brief 更新自己在聊天室的成员信息 * @param updateParams 更新参数 * @param antispamConfig 反垃圾配置 * @returns void * @example * ```javascript * await chatroomService.updateSelfMemberInfo({ * roomNick: 'new room nickname' * }, {}) * ``` */ updateSelfMemberInfo(updateParams: V2NIMChatroomSelfMemberUpdateParams, antispamConfig: V2NIMAntispamConfig): Promise<void>; /** * @param accountIds 账号列表 * @returns Array<V2NIMChatroomMember> * @example * ```javascript * const result = await chatroomService.getMemberByIds(['accountId1', 'accountId2']) * console.log(result) * ``` */ getMemberByIds(accountIds: Array<string>): Promise<Array<V2NIMChatroomMember>>; /** * @brief 踢出聊天室成员 * @param accountId 聊天室成员 id * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.kickMember('accountId', 'your notification extension') * ``` */ kickMember(accountId: string, notificationExtension: string): Promise<void>; /** * @brief 按聊天室标签临时禁言 * @param params 设置标签禁言的参数 * @returns void * @example * ```javascript * await chatroomService.setTempChatBannedByTag({ * targetTag: 'tag', * duration: 10 * }) * ``` */ setTempChatBannedByTag(params: V2NIMChatroomTagTempChatBannedParams): Promise<void>; /** * @brief 根据标签查询成员列表 * @param option 查询成员列表的参数 * @returns V2NIMChatroomMemberListResult * @example * ```javascript * const result = await chatroomService.getMemberListByTag({ * tag: 'tag', * limit: 10 * }) * ``` */ getMemberListByTag(option: V2NIMChatroomTagMemberOption): Promise<V2NIMChatroomMemberListResult>; /** * @brief 查询某个标签下的成员人数 * @param tag 标签 * @returns number * @example * ```javascript * const count = await chatroomService.getMemberCountByTag('tag') * ``` */ getMemberCountByTag(tag: string): Promise<number>; /** * @brief 更新坐标信息 * @param locationConfig 坐标信息 * @returns void * @example * ```javascript * await chatroomService.updateChatroomLocationInfo({ * latitude: 30.5, * longitude: 120.5 * }) * ``` */ updateChatroomLocationInfo(locationConfig: V2NIMChatroomLocationConfig): Promise<void>; /** * @brief 更新聊天室 tag 信息 * @param updateParams tag 更新的参数 * @returns void * @example * ```javascript * await chatroomService.updateChatroomTags({ * tags: ['tag1', 'tag2'] * }) * ``` */ updateChatroomTags(updateParams: V2NIMChatroomTagsUpdateParams): Promise<void>; /** * @brief 根据标签查询消息列表 * @param messageOption 查询参数 * @returns Array<V2NIMChatroomMessage> * @example * ```javascript * const result = await chatroomService.getMessageListByTag({ * tags: ['tag1', 'tag2'], * limit: 10 * }) * ``` */ getMessageListByTag(messageOption: V2NIMChatroomTagMessageOption): Promise<Array<V2NIMChatroomMessage>>; }