UNPKG

node-nim

Version:

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

275 lines (274 loc) 14.2 kB
import { EventEmitter } from 'eventemitter3'; import { ChatRoomIndependentEnterInfo, ChatRoomAnoymityEnterInfo, ChatRoomEnterInfo, NIMChatRoomLoginState, ChatRoomMessage, ChatRoomGetMembersParameters, GetMembersCallback, GetMembersCountByTagCallback, ChatRoomGetMsgHistoryParameters, GetMsgHistoryCallback, ChatRoomSetMemberAttributeParameters, SetMemberAttributeCallback, GetChatRoomInfoCallback, KickMemberCallback, NIMChatRoomProxyType, TempMuteMemberCallback, ChatRoomInfo, UpdateRoomInfoCallback, ChatRoomMemberInfo, UpdateMyRoomRoleCallback, ChatRoomQueueElement, ChatRoomQueueOfferOption, QueueOfferCallback, QueuePollCallback, QueueListCallback, QueueHeaderCallback, QueueDropCallback, QueueBatchUpdateCallback, NIMChatRoomLocation, UpdateLocationCallback, ChatRoomUpdateTagsInfo, UpdateTagsCallback, ChatRoomNotification, NIMChatRoomEnterStep, NIMChatRoomExitReason, NIMChatRoomLinkCondition, ChatRoomGetMsgHistoryByTagsParameters, ChatRoomConfig, ChatRoomGetMembersByTagParameters, ChatRoomBatchMembers } from '../chatroom_def/chatroom_def'; import { NIMResCode } from '../nim_def/client_def'; export declare interface ChatRoomEvents { /** 登录 */ enter: [number, NIMChatRoomEnterStep, number, ChatRoomInfo, ChatRoomMemberInfo]; /** 登出、被踢 */ exit: [number, number, NIMChatRoomExitReason]; /** 发送消息 */ sendMsg: [number, number, ChatRoomMessage]; /** 接收消息 */ receiveMsg: [number, ChatRoomMessage]; /** 接收批量消息 */ receiveMsgs: [number, Array<ChatRoomMessage>]; /** 通知 */ notification: [number, ChatRoomNotification]; /** 服务连接情况 */ linkCondition: [number, NIMChatRoomLinkCondition]; } export declare class ChatRoomModule extends EventEmitter<ChatRoomEvents> { chatroom: any; constructor(); /** * 初始化事件处理 */ initEventHandlers(): void; /** * 聊天室模块初始化(SDK初始化时调用一次) * @param app_install_dir Deprecated * @param json_extension json 扩展参数(备用,目前不需要) */ init(app_install_dir: string, json_extension: string): boolean; /** * 聊天室模块清理 * @param json_extension json 扩展参数(备用,目前不需要) */ cleanup(json_extension: string): void; /** * 独立模式进入聊天室 * @param room_id 聊天室 ID * @param info 聊天室进入信息 * @param config 聊天室配置对象,可选 */ independentEnter(room_id: number, info: ChatRoomIndependentEnterInfo, config: ChatRoomConfig): boolean; /** * 聊天室匿名进入 * @param room_id 聊天室 ID * @param anonymity_info 匿名信息 * @param info 聊天室进入信息 * @param config 聊天室配置对象,可选 */ anonymousEnter(room_id: number, anonymity_info: ChatRoomAnoymityEnterInfo, info: ChatRoomEnterInfo, config: ChatRoomConfig): boolean; /** * 进入聊天室,需要先登录 IM * @param room_id 聊天室 ID * @param request_login_data 在登录 IM 成功后,调用 plguin::chatRoomRequestEnterAsync 接口获取 * @param info 聊天室进入信息 * @param json_extension json 扩展参数(备用,目前不需要) */ enter(room_id: number, request_login_data: string, info: ChatRoomEnterInfo, json_extension: string): boolean; /** * 聊天室登出 * @param room_id 聊天室 ID * @param json_extension json 扩展参数(备用,目前不需要) */ exit(room_id: number, json_extension: string): void; /** * 获取登录状态 * @param room_id 聊天室 ID * @param json_extension json 扩展参数(备用,目前不需要) */ getLoginState(room_id: number, json_extension: string): NIMChatRoomLoginState; /** * 设置消息批量报告 * @param set_batch 是否开启批量报告 * @param json_extension json 扩展参数(备用,目前不需要) */ setMsgsBatchReport(set_batch: boolean, json_extension: string): void; /** * 发送消息 * @param room_id 聊天室 ID * @param msg 消息 * @param json_extension json 扩展参数(备用,目前不需要) */ sendMsg(room_id: number, msg: ChatRoomMessage, json_extension: string): boolean; /** * 获取聊天室成员列表 * @param room_id 聊天室 ID * @param parameters 获取成员列表参数 * @param cb 获取成员列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersOnlineAsync(room_id: number, parameters: ChatRoomGetMembersParameters, cb: GetMembersCallback | null, json_extension: string): Promise<[number, number, Array<ChatRoomMemberInfo>]>; /** * 根据 Tag 获取聊天室成员列表 * @param room_id 聊天室 ID * @param parameters 获取成员列表参数 * @param cb 获取成员列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersByTagOnlineAsync(room_id: number, parameters: ChatRoomGetMembersByTagParameters, cb: GetMembersCallback | null, json_extension: string): Promise<[number, number, Array<ChatRoomMemberInfo>]>; /** * 根据 Tag 获取在线成员数量 * @param room_id 聊天室 ID * @param parameters 获取成员数量参数 * @param cb 获取成员数量回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMembersCountByTagOnlineAsync(room_id: number, parameters: ChatRoomGetMembersParameters, cb: GetMembersCountByTagCallback | null, json_extension: string): Promise<[number, NIMResCode, number]>; /** * 获取消息历史 * @param room_id 聊天室 ID * @param parameters 获取消息历史参数 * @param cb 获取消息历史回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMessageHistoryOnlineAsync(room_id: number, parameters: ChatRoomGetMsgHistoryParameters, cb: GetMsgHistoryCallback | null, json_extension: string): Promise<[number, number, Array<ChatRoomMessage>]>; /** * 获取消息历史(根据 Tag) * @param room_id 聊天室 ID * @param parameters 获取消息历史参数 * @param cb 获取消息历史回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMessageHistoryByTagsOnlineAsync(room_id: number, parameters: ChatRoomGetMsgHistoryByTagsParameters, cb: GetMsgHistoryCallback | null, json_extension: string): Promise<[number, number, Array<ChatRoomMessage>]>; /** * 设置成员身份标识 * @param room_id 聊天室 ID * @param parameters 设置成员身份标识参数 * @param cb 设置成员身份标识回调 * @param json_extension json 扩展参数(备用,目前不需要) */ setMemberAttributeOnlineAsync(room_id: number, parameters: ChatRoomSetMemberAttributeParameters, cb: SetMemberAttributeCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomMemberInfo]>; /** * 获取聊天室信息 * @param room_id 聊天室 ID * @param cb 获取聊天室信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getInfoAsync(room_id: number, cb: GetChatRoomInfoCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomInfo]>; /** * 获取聊天室成员信息 * @param room_id 聊天室 ID * @param ids 用户 ID 列表 * @param cb 获取聊天室成员信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ getMemberInfoByIDsAsync(room_id: number, ids: Array<string>, cb: GetMembersCallback | null, json_extension: string): Promise<[number, NIMResCode, Array<ChatRoomMemberInfo>]>; /** * 踢人 * @param room_id 聊天室 ID * @param id 用户 ID * @param notify_ext 通知扩展字段 * @param cb 踢人回调 * @param json_extension json 扩展参数(备用,目前不需要) */ kickMemberAsync(room_id: number, id: string, notify_ext: string, cb: KickMemberCallback | null, json_extension: string): Promise<[number, NIMResCode]>; /** * 设置代理 * @param type 代理类型 * @param host 代理地址 * @param port 代理端口 * @param user 用户名 * @param password 密码 */ setProxy(type: NIMChatRoomProxyType, host: string, port: number, user: string, password: string): void; /** * 临时禁言 * @param room_id 聊天室 ID * @param accid 用户 ID * @param duration 禁言时长 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 临时禁言回调 * @param json_extension json 扩展参数(备用,目前不需要) */ tempMuteMemberAsync(room_id: number, accid: string, duration: number, need_notify: boolean, notify_ext: string, cb: TempMuteMemberCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomMemberInfo]>; /** * 临时禁言(根据 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: number, target_tag: string, duration: number, need_notify: boolean, notify_ext: string, cb: TempMuteMemberCallback | null, notify_tags: string, json_extension: string): Promise<[number, NIMResCode, ChatRoomMemberInfo]>; /** * 更新聊天室信息 * @param room_id 聊天室 ID * @param room_info 聊天室信息 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 更新聊天室信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateRoomInfoAsync(room_id: number, room_info: ChatRoomInfo, need_notify: boolean, notify_ext: string, cb: UpdateRoomInfoCallback | null, json_extension: string): Promise<[number, NIMResCode]>; /** * 更新我的聊天室角色 * @param room_id 聊天室 ID * @param info 聊天室成员信息 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 更新我的聊天室角色回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateMyRoomRoleAsync(room_id: number, info: ChatRoomMemberInfo, need_notify: boolean, notify_ext: string, cb: UpdateMyRoomRoleCallback | null, json_extension: string): Promise<[number, NIMResCode]>; /** * 队列元素入队 * @param room_id 聊天室 ID * @param element 队列元素 * @param option 队列元素入队选项 * @param cb 队列元素入队回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueOfferAsync(room_id: number, element: ChatRoomQueueElement, option: ChatRoomQueueOfferOption, cb: QueueOfferCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomQueueElement]>; /** * 队列元素出队 * @param room_id 聊天室 ID * @param element_key 队列元素 key * @param cb 队列元素出队回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queuePollAsync(room_id: number, element_key: string, cb: QueuePollCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomQueueElement]>; /** * 获取队列列表 * @param room_id 聊天室 ID * @param cb 获取队列列表回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueListAsync(room_id: number, cb: QueueListCallback | null, json_extension: string): Promise<[number, NIMResCode, Array<ChatRoomQueueElement>]>; /** * 获取队列头元素 * @param room_id 聊天室 ID * @param cb 获取队列头元素回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueHeaderAsync(room_id: number, cb: QueueHeaderCallback | null, json_extension: string): Promise<[number, NIMResCode, ChatRoomQueueElement]>; /** * (管理员权限)删除麦序队列 * @param room_id 聊天室 ID * @param cb 删除麦序队列回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueDropAsync(room_id: number, cb: QueueDropCallback | null, json_extension: string): Promise<[number, NIMResCode]>; /** * (管理员权限)批量更新麦序队列 * @param room_id 聊天室 ID * @param batch_elements 批量更新麦序队列元素 * @param need_notify 是否需要通知 * @param notify_ext 通知扩展字段 * @param cb 批量更新麦序队列回调 * @param json_extension json 扩展参数(备用,目前不需要) */ queueBatchUpdateAsync(room_id: number, batch_elements: ChatRoomBatchMembers, need_notify: boolean, notify_ext: string, cb: QueueBatchUpdateCallback | null, json_extension: string): Promise<[number, NIMResCode, Array<string>]>; /** * 更新位置信息 * @param room_id 聊天室 ID * @param location 位置信息 * @param cb 更新位置信息回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateLocation(room_id: number, location: NIMChatRoomLocation, cb: UpdateLocationCallback | null, json_extension: string): Promise<[number, NIMResCode] | null>; /** * 更新标签 * @param room_id 聊天室 ID * @param tags_info 标签信息 * @param cb 更新标签回调 * @param json_extension json 扩展参数(备用,目前不需要) */ updateTags(room_id: number, tags_info: ChatRoomUpdateTagsInfo, cb: UpdateTagsCallback | null, json_extension: string): Promise<[number, NIMResCode] | null>; }