UNPKG

node-nim

Version:

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

380 lines 11.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.V2NIMChatroomService = void 0; const eventemitter3_1 = __importDefault(require("eventemitter3")); const loader_1 = __importDefault(require("../loader")); /** @brief 聊天室服务 */ class V2NIMChatroomService extends eventemitter3_1.default { constructor(instanceId) { super(); this.instance = new loader_1.default.V2NIMChatroomService({ emit: this.emit.bind(this) }, instanceId); } /** * @brief 发送消息 * @param message 需要发送的消息体 * @param params 发送消息相关配置参数 * @returns void * @example * ```javascript * const message = V2NIMChatroomMessageCreator.createTextMessage('Hello NTES IM') * await chatroomService.sendMessage(message, {}) * ``` */ sendMessage(message, params) { return new Promise((resolve, reject) => { this.instance.sendMessage(message, params, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 取消上传消息附件 * @param message 要取消上传的文件消息 * @returns void * @example * ```javascript * await chatroomService.cancelMessageAttachmentUpload(message) * ``` */ cancelMessageAttachmentUpload(message) { return new Promise((resolve, reject) => { this.instance.cancelMessageAttachmentUpload(message, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 查询聊天室成员列表 * @param queryOption 查询选项 * @returns V2NIMChatroomMemberListResult * @example * ```javascript * const result = await chatroomService.getMemberListByOption({ * limit: 10 * }) * console.log(result) * ``` */ getMemberListByOption(queryOption) { return new Promise((resolve, reject) => { this.instance.getMemberListByOption(queryOption, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 查询聊天室消息列表 * @param option 查询选项 * @returns Array<V2NIMChatroomMessage> * @example * ```javascript * const result = await chatroomService.getMessageList({ * limit: 10 * }) * console.log(result) * ``` */ getMessageList(option) { return new Promise((resolve, reject) => { this.instance.getMessageList(option, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 更新聊天室成员角色 * @param accountId 聊天室成员 id * @param upadateParams 更新参数 * @returns void * @example * ```javascript * await chatroomService.updateMemberRole('accountId', { * memberRole: 2 * }) * ``` */ updateMemberRole(accountId, upadateParams) { return new Promise((resolve, reject) => { this.instance.updateMemberRole(accountId, upadateParams, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 设置聊天室成员黑名单状态 * @param accountId 聊天室成员 id * @param blocked 黑名单状态 * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.setMemberBlockedStatus('accountId', true, 'your notification extension') * ``` */ setMemberBlockedStatus(accountId, blocked, notificationExtension) { return new Promise((resolve, reject) => { this.instance.setMemberBlockedStatus(accountId, blocked, notificationExtension, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 设置聊天室成员禁言状态 * @param accountId 聊天室成员 id * @param chatBanned 禁言状态 * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.setMemberChatBannedStatus('accountId', true, 'your notification extension') * ``` */ setMemberChatBannedStatus(accountId, chatBanned, notificationExtension) { return new Promise((resolve, reject) => { this.instance.setMemberChatBannedStatus(accountId, chatBanned, notificationExtension, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @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, tempChatBannedDuration, notificationEnabled, notificationExtension) { return new Promise((resolve, reject) => { this.instance.setMemberTempChatBanned(accountId, tempChatBannedDuration, notificationEnabled, notificationExtension, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 更新聊天室信息 * @param updateParams 更新参数 * @param antispamConfig 反垃圾配置 * @returns void * @example * ```javascript * await chatroomService.updateChatroomInfo({ * roomName: 'new room name' * }, {}) * ``` */ updateChatroomInfo(updateParams, antispamConfig) { return new Promise((resolve, reject) => { this.instance.updateChatroomInfo(updateParams, antispamConfig, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 更新自己在聊天室的成员信息 * @param updateParams 更新参数 * @param antispamConfig 反垃圾配置 * @returns void * @example * ```javascript * await chatroomService.updateSelfMemberInfo({ * roomNick: 'new room nickname' * }, {}) * ``` */ updateSelfMemberInfo(updateParams, antispamConfig) { return new Promise((resolve, reject) => { this.instance.updateSelfMemberInfo(updateParams, antispamConfig, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @param accountIds 账号列表 * @returns Array<V2NIMChatroomMember> * @example * ```javascript * const result = await chatroomService.getMemberByIds(['accountId1', 'accountId2']) * console.log(result) * ``` */ getMemberByIds(accountIds) { return new Promise((resolve, reject) => { this.instance.getMemberByIds(accountIds, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 踢出聊天室成员 * @param accountId 聊天室成员 id * @param notificationExtension 通知扩展字段 * @returns void * @example * ```javascript * await chatroomService.kickMember('accountId', 'your notification extension') * ``` */ kickMember(accountId, notificationExtension) { return new Promise((resolve, reject) => { this.instance.kickMember(accountId, notificationExtension, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 按聊天室标签临时禁言 * @param params 设置标签禁言的参数 * @returns void * @example * ```javascript * await chatroomService.setTempChatBannedByTag({ * targetTag: 'tag', * duration: 10 * }) * ``` */ setTempChatBannedByTag(params) { return new Promise((resolve, reject) => { this.instance.setTempChatBannedByTag(params, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 根据标签查询成员列表 * @param option 查询成员列表的参数 * @returns V2NIMChatroomMemberListResult * @example * ```javascript * const result = await chatroomService.getMemberListByTag({ * tag: 'tag', * limit: 10 * }) * ``` */ getMemberListByTag(option) { return new Promise((resolve, reject) => { this.instance.getMemberListByTag(option, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 查询某个标签下的成员人数 * @param tag 标签 * @returns number * @example * ```javascript * const count = await chatroomService.getMemberCountByTag('tag') * ``` */ getMemberCountByTag(tag) { return new Promise((resolve, reject) => { this.instance.getMemberCountByTag(tag, (result) => { resolve(result); }, (error) => { reject(error); }); }); } /** * @brief 更新坐标信息 * @param locationConfig 坐标信息 * @returns void * @example * ```javascript * await chatroomService.updateChatroomLocationInfo({ * latitude: 30.5, * longitude: 120.5 * }) * ``` */ updateChatroomLocationInfo(locationConfig) { return new Promise((resolve, reject) => { this.instance.updateChatroomLocationInfo(locationConfig, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 更新聊天室 tag 信息 * @param updateParams tag 更新的参数 * @returns void * @example * ```javascript * await chatroomService.updateChatroomTags({ * tags: ['tag1', 'tag2'] * }) * ``` */ updateChatroomTags(updateParams) { return new Promise((resolve, reject) => { this.instance.updateChatroomTags(updateParams, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 根据标签查询消息列表 * @param messageOption 查询参数 * @returns Array<V2NIMChatroomMessage> * @example * ```javascript * const result = await chatroomService.getMessageListByTag({ * tags: ['tag1', 'tag2'], * limit: 10 * }) * ``` */ getMessageListByTag(messageOption) { return new Promise((resolve, reject) => { this.instance.getMessageListByTag(messageOption, (result) => { resolve(result); }, (error) => { reject(error); }); }); } } exports.V2NIMChatroomService = V2NIMChatroomService; //# sourceMappingURL=v2_nim_chatroom_service.js.map