UNPKG

node-nim

Version:

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

482 lines 18.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChatRoomModule = void 0; const loader_1 = __importDefault(require("../loader")); const eventemitter3_1 = require("eventemitter3"); class ChatRoomModule extends eventemitter3_1.EventEmitter { constructor() { super(); this.chatroom = new loader_1.default.NIMChatRoom({ emit: this.emit.bind(this) }); } /** * 初始化事件处理 */ initEventHandlers() { return this.chatroom.InitEventHandlers(); } /** * 聊天室模块初始化(SDK初始化时调用一次) * @param app_install_dir Deprecated * @param json_extension json 扩展参数(备用,目前不需要) */ init(app_install_dir, json_extension) { return this.chatroom.Init(app_install_dir, json_extension); } /** * 聊天室模块清理 * @param json_extension json 扩展参数(备用,目前不需要) */ cleanup(json_extension) { return this.chatroom.Cleanup(json_extension); } /** * 独立模式进入聊天室 * @param room_id 聊天室 ID * @param info 聊天室进入信息 * @param config 聊天室配置对象,可选 */ independentEnter(room_id, info, config) { return this.chatroom.IndependentEnter(room_id, info, config); } /** * 聊天室匿名进入 * @param room_id 聊天室 ID * @param anonymity_info 匿名信息 * @param info 聊天室进入信息 * @param config 聊天室配置对象,可选 */ anonymousEnter(room_id, anonymity_info, info, config) { return this.chatroom.AnonymousEnter(room_id, anonymity_info, info, config); } /** * 进入聊天室,需要先登录 IM * @param room_id 聊天室 ID * @param request_login_data 在登录 IM 成功后,调用 plguin::chatRoomRequestEnterAsync 接口获取 * @param info 聊天室进入信息 * @param json_extension json 扩展参数(备用,目前不需要) */ enter(room_id, request_login_data, info, json_extension) { return this.chatroom.Enter(room_id, request_login_data, info, json_extension); } /** * 聊天室登出 * @param room_id 聊天室 ID * @param json_extension json 扩展参数(备用,目前不需要) */ exit(room_id, json_extension) { return this.chatroom.Exit(room_id, json_extension); } /** * 获取登录状态 * @param room_id 聊天室 ID * @param json_extension json 扩展参数(备用,目前不需要) */ getLoginState(room_id, json_extension) { return this.chatroom.GetLoginState(room_id, json_extension); } /** * 设置消息批量报告 * @param set_batch 是否开启批量报告 * @param json_extension json 扩展参数(备用,目前不需要) */ setMsgsBatchReport(set_batch, json_extension) { return this.chatroom.SetMsgsBatchReport(set_batch, json_extension); } /** * 发送消息 * @param room_id 聊天室 ID * @param msg 消息 * @param json_extension json 扩展参数(备用,目前不需要) */ sendMsg(room_id, msg, json_extension) { return this.chatroom.SendMsg(room_id, msg, json_extension); } /** * 获取聊天室成员列表 * @param room_id 聊天室 ID * @param parameters 获取成员列表参数 * @param cb 获取成员列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMembersOnlineAsync(room_id, parameters, (room_id, rescode, infos) => { if (cb) { cb(room_id, rescode, infos); } resolve([room_id, rescode, infos]); }, json_extension); }); } /** * 根据 Tag 获取聊天室成员列表 * @param room_id 聊天室 ID * @param parameters 获取成员列表参数 * @param cb 获取成员列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersByTagOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMembersByTagOnlineAsync(room_id, parameters, (room_id, rescode, infos) => { if (cb) { cb(room_id, rescode, infos); } resolve([room_id, rescode, infos]); }, json_extension); }); } /** * 根据 Tag 获取在线成员数量 * @param room_id 聊天室 ID * @param parameters 获取成员数量参数 * @param cb 获取成员数量回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersCountByTagOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMembersCountByTagOnlineAsync(room_id, parameters, (room_id, rescode, count) => { if (cb) { cb(room_id, rescode, count); } resolve([room_id, rescode, count]); }, json_extension); }); } /** * 获取消息历史 * @param room_id 聊天室 ID * @param parameters 获取消息历史参数 * @param cb 获取消息历史回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMessageHistoryOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMessageHistoryOnlineAsync(room_id, parameters, (room_id, rescode, msgs) => { if (cb) { cb(room_id, rescode, msgs); } resolve([room_id, rescode, msgs]); }, json_extension); }); } /** * 获取消息历史(根据 Tag) * @param room_id 聊天室 ID * @param parameters 获取消息历史参数 * @param cb 获取消息历史回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMessageHistoryByTagsOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMessageHistoryByTagsOnlineAsync(room_id, parameters, (room_id, rescode, msgs) => { if (cb) { cb(room_id, rescode, msgs); } resolve([room_id, rescode, msgs]); }, json_extension); }); } /** * 设置成员身份标识 * @param room_id 聊天室 ID * @param parameters 设置成员身份标识参数 * @param cb 设置成员身份标识回调 * @param json_extension json 扩展参数(备用,目前不需要) */ setMemberAttributeOnlineAsync(room_id, parameters, cb, json_extension) { return new Promise((resolve) => { this.chatroom.SetMemberAttributeOnlineAsync(room_id, parameters, (room_id, rescode, info) => { if (cb) { cb(room_id, rescode, info); } resolve([room_id, rescode, info]); }, json_extension); }); } /** * 获取聊天室信息 * @param room_id 聊天室 ID * @param cb 获取聊天室信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getInfoAsync(room_id, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetInfoAsync(room_id, (room_id, rescode, info) => { if (cb) { cb(room_id, rescode, info); } resolve([room_id, rescode, info]); }, json_extension); }); } /** * 获取聊天室成员信息 * @param room_id 聊天室 ID * @param ids 用户 ID 列表 * @param cb 获取聊天室成员信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMemberInfoByIDsAsync(room_id, ids, cb, json_extension) { return new Promise((resolve) => { this.chatroom.GetMemberInfoByIDsAsync(room_id, ids, (room_id, rescode, infos) => { if (cb) { cb(room_id, rescode, infos); } resolve([room_id, rescode, infos]); }, json_extension); }); } /** * 踢人 * @param room_id 聊天室 ID * @param id 用户 ID * @param notify_ext 通知扩展字段 * @param cb 踢人回调 * @param json_extension json 扩展参数(备用,目前不需要) */ kickMemberAsync(room_id, id, notify_ext, cb, json_extension) { return new Promise((resolve) => { this.chatroom.KickMemberAsync(room_id, id, notify_ext, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension); }); } /** * 设置代理 * @param type 代理类型 * @param host 代理地址 * @param port 代理端口 * @param user 用户名 * @param password 密码 */ setProxy(type, host, port, user, password) { return this.chatroom.SetProxy(type, host, port, user, password); } /** * 临时禁言 * @param room_id 聊天室 ID * @param accid 用户 ID * @param duration 禁言时长 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 临时禁言回调 * @param json_extension json 扩展参数(备用,目前不需要) */ tempMuteMemberAsync(room_id, accid, duration, need_notify, notify_ext, cb, json_extension) { return new Promise((resolve) => { this.chatroom.TempMuteMemberAsync(room_id, accid, duration, need_notify, notify_ext, (room_id, rescode, info) => { if (cb) { cb(room_id, rescode, info); } resolve([room_id, rescode, info]); }, json_extension); }); } /** * 临时禁言(根据 Tag) * @param room_id 聊天室 ID * @param target_tag 用户 Tag * @param duration 禁言时长 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 临时禁言回调 * @param notify_tags 通知 Tag * @param json_extension json 扩展参数(备用,目前不需要) */ tempMuteMemberByTagAsync(room_id, target_tag, duration, need_notify, notify_ext, cb, notify_tags, json_extension) { return new Promise((resolve) => { this.chatroom.TempMuteMemberByTagAsync(room_id, target_tag, duration, need_notify, notify_ext, (room_id, rescode, info) => { if (cb) { cb(room_id, rescode, info); } resolve([room_id, rescode, info]); }, notify_tags, json_extension); }); } /** * 更新聊天室信息 * @param room_id 聊天室 ID * @param room_info 聊天室信息 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 更新聊天室信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateRoomInfoAsync(room_id, room_info, need_notify, notify_ext, cb, json_extension) { return new Promise((resolve) => { this.chatroom.UpdateRoomInfoAsync(room_id, room_info, need_notify, notify_ext, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension); }); } /** * 更新我的聊天室角色 * @param room_id 聊天室 ID * @param info 聊天室成员信息 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 更新我的聊天室角色回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateMyRoomRoleAsync(room_id, info, need_notify, notify_ext, cb, json_extension) { return new Promise((resolve) => { this.chatroom.UpdateMyRoomRoleAsync(room_id, info, need_notify, notify_ext, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension); }); } /** * 队列元素入队 * @param room_id 聊天室 ID * @param element 队列元素 * @param option 队列元素入队选项 * @param cb 队列元素入队回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueOfferAsync(room_id, element, option, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueueOfferAsync(room_id, element, option, (room_id, rescode, element) => { if (cb) { cb(room_id, rescode, element); } resolve([room_id, rescode, element]); }, json_extension); }); } /** * 队列元素出队 * @param room_id 聊天室 ID * @param element_key 队列元素 key * @param cb 队列元素出队回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queuePollAsync(room_id, element_key, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueuePollAsync(room_id, element_key, (room_id, rescode, element) => { if (cb) { cb(room_id, rescode, element); } resolve([room_id, rescode, element]); }, json_extension); }); } /** * 获取队列列表 * @param room_id 聊天室 ID * @param cb 获取队列列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueListAsync(room_id, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueueListAsync(room_id, (room_id, rescode, elements) => { if (cb) { cb(room_id, rescode, elements); } resolve([room_id, rescode, elements]); }, json_extension); }); } /** * 获取队列头元素 * @param room_id 聊天室 ID * @param cb 获取队列头元素回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueHeaderAsync(room_id, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueueHeaderAsync(room_id, (room_id, rescode, element) => { if (cb) { cb(room_id, rescode, element); } resolve([room_id, rescode, element]); }, json_extension); }); } /** * (管理员权限)删除麦序队列 * @param room_id 聊天室 ID * @param cb 删除麦序队列回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueDropAsync(room_id, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueueDropAsync(room_id, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension); }); } /** * (管理员权限)批量更新麦序队列 * @param room_id 聊天室 ID * @param batch_elements 批量更新麦序队列元素 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 批量更新麦序队列回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueBatchUpdateAsync(room_id, batch_elements, need_notify, notify_ext, cb, json_extension) { return new Promise((resolve) => { this.chatroom.QueueBatchUpdateAsync(room_id, batch_elements, need_notify, notify_ext, (room_id, rescode, element_keys) => { if (cb) { cb(room_id, rescode, element_keys); } resolve([room_id, rescode, element_keys]); }, json_extension); }); } /** * 更新位置信息 * @param room_id 聊天室 ID * @param location 位置信息 * @param cb 更新位置信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateLocation(room_id, location, cb, json_extension) { return new Promise((resolve) => { if (!this.chatroom.UpdateLocation(room_id, location, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension)) { resolve(null); } }); } /** * 更新标签 * @param room_id 聊天室 ID * @param tags_info 标签信息 * @param cb 更新标签回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateTags(room_id, tags_info, cb, json_extension) { return new Promise((resolve) => { if (!this.chatroom.UpdateTags(room_id, tags_info, (room_id, rescode) => { if (cb) { cb(room_id, rescode); } resolve([room_id, rescode]); }, json_extension)) { resolve(null); } }); } } exports.ChatRoomModule = ChatRoomModule; //# sourceMappingURL=chatroom.js.map