node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
380 lines • 11.8 kB
JavaScript
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
;