node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
275 lines (274 loc) • 14.2 kB
TypeScript
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>;
}