Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • IMClient

Index

Properties

Constructors

Methods

Properties

_channelClient: {} = {}

Type declaration

_defaultChannelClient: ChannelClient
_isCPPMode: boolean

Constructors

  • Parameters

    Returns IMClient

Methods

  • assertCPPMode<T, N, O>(method: (() => N), methodName: string, callback?: ICallback<T, O>): void
  • 协议栈方法校验

    Type Parameters

    • T

    • N

    • O

    Parameters

    • method: (() => N)
        • (): N
        • Returns N

    • methodName: string
    • Optional callback: ICallback<T, O>

    Returns void

  • install<T, O>(plugin: IPluginGenerator<T, O>, options: O): null | T
  • 装载插件,并返回相应的插件实例

    Type Parameters

    • T

    • O

    Parameters

    • plugin: IPluginGenerator<T, O>
    • options: O

    Returns null | T

  • 获取 channel proxy 实例

    Parameters

    • channelId: string

      会话标识 ID

    Returns null | ChannelClient

  • deleteChannels(channelIds: string[]): void
  • 批量删除 channel proxy 实例

    Parameters

    • channelIds: string[]

      会话标识 ID

    Returns void

  • getNavi(): {} | INaviInfo
  • 获取导航新 RTC Lib 使用

    Returns {} | INaviInfo

  • getSDKInfo(): { version: string }
  • 获取 SDK 信息 RTC Lib 使用

    Returns { version: string }

    • version: string
  • getAppInfo(): { appKey: string }
  • 获取 App 信息,RTC Lib 使用

    Returns { appKey: string }

    • appKey: string
  • getCurrentUserId(): string
  • 获取当前用户 ID

    Returns string

  • disconnect(closeDB?: boolean): Promise<void>
  • 断开当前连接

    description

    相较于原 SDK 2.0 版本的 disconnect,此方法会返回一个 Promise 对象

    Parameters

    • Optional closeDB: boolean

      是否关闭数据库,默认为 true,仅 Electron 平台有效

    Returns Promise<void>

    Promise

  • logout(): Promise<void>
  • 该方法等价于 disconnect

    Returns Promise<void>

  • clearCache(): void
  • 清除内存或本地缓存数据

    Returns void

  • getDeviceId(): string
  • 获取 deviceId

    Returns string

  • getConversationList(callback: ICallback<IConversation[], void>, conversationTypes: null | Number[], count?: number): void
  • 获取会话列表,相对于 2.0 的接口,该接口结果中不再展开会话中最后一条消息的数据

    Parameters

    • callback: ICallback<IConversation[], void>

      结果回调

    • conversationTypes: null | Number[]

      会话类型,为 null 时,返回全部会话

    • Optional count: number

      获取数量,默认 300

    Returns void

  • Parameters

    Returns void

  • getConversationListWithAllChannelByPage(callback: ICallback<IConversation[], void>, index: number, limit?: number): void
  • Parameters

    Returns void

  • 获取指定会话

    description

    相较于 2.0 中从本地缓存获取会话,当前方法从服务器拉取

    Parameters

    Returns void

  • 删除指定会话

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      会话 target_id

    • callback: ICallback<void, void>

      删除回调

    Returns void

  • saveTextMessageDraft(conversationType: ConversationType, targetId: string, draftText: string): boolean
  • 保存草稿

    description

    草稿存储在内存中,如刷新或者关闭页面会导致草稿丢失。 草稿功能并未在 v3 SDK 版本红实现,由 Bridge 模块实现

    Parameters

    Returns boolean

  • getTextMessageDraft(conversationType: ConversationType, targetId: string): undefined | string
  • 获取草稿信息

    description

    未登录或无草稿数据时将返回 undefined

    Parameters

    Returns undefined | string

  • clearTextMessageDraft(conversationType: ConversationType, targetId: string): boolean
  • 删除草稿

    Parameters

    Returns boolean

  • 获取所有会话的消息未读数

    description
    1. 清除浏览器缓存会导致会话未读数不准确
    2. 会话消息未读数存储在 WebStorage 中, 若浏览器不支持或禁用 WebStorage,未读消息数将不会保存,浏览器页面刷新未读消息数将不会存在

    Parameters

    • callback: ICallback<number, void>
    • Optional conversationTypes: ConversationType[]

      要获取未读数的会话类型,若为空,则默认获取单聊、群聊及系统消息未读数(web 暂未实现)

    • Optional includeMuted: boolean

      是否包含免打扰会话(web 暂未实现)

    Returns void

  • 获取指定会话的消息未读数

    todo

    Parameters

    Returns void

  • 该方法已弃用按会话类型获取消息未读数

    deprecated

    Parameters

    Returns void

  • 删除指定类型会话,该方法已弃用

    description

    仅可在协议栈连接下调用

    Parameters

    Returns void

  • 清除指定会话未读数

    Parameters

    Returns void

  • clearAllUnreadCount(callback: ICallback<boolean, void>): void
  • 清除全部会话未读数

    Parameters

    Returns void

  • 设置会话状态:是否置顶、是否免打扰

    Parameters

    Returns void

  • 发送消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      接收方 id,当会话类型为单聊时,该值为单聊对象的 userId,为群聊时,该值应为群组 groupId

    • msg: BaseMessage<any>

      消息体

    • callback: ISendCallback<IReceivedMessageV2, void>

      回调函数

    • Optional isMentioned: boolean

      是否为 @ 消息

    • Optional pushContent: string

      移动端在接收到消息推送时用于显示的推送信息

    • Optional pushData: string

      Push 通知时附加信息

    • Optional methodType: number

      该参数已废弃 1 : 多客服(客服后台使用); 2 : 消息撤回

    • Optional options: ISendOptionsV2

      其他设置项

    Returns void

  • 发送正在输入状态消息

    description

    正在输入状态消息,不存储、不计数、不推送

    Parameters

    Returns void

  • sendReadReceiptMessage(messageUIds: string[], targetId: string, callback: ICallback<void, void>): void
  • 发送群已读回执

    Parameters

    • messageUIds: string[]
    • targetId: string
    • callback: ICallback<void, void>

    Returns void

  • 获取群已读列表

    Parameters

    Returns void

  • 更新消息扩展

    Parameters

    • expansionDic: {}

      要更新的消息扩展信息键值对

      • [key: string]: string
    • message: IReceivedMessageV2

      要更新的原始消息体

    • callback: ICallback<void, void>

    Returns void

  • 删除消息扩展属性

    Parameters

    • keys: string[]

      消息扩展信息中待删除的 key 的列表

    • message: IReceivedMessageV2

      要删除消息扩展的原始消息体

    • callback: ICallback<void, void>

    Returns void

  • 从服务端拉取指定会话的历史消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      会话 ID

    • timestamp: number

      获取时间戳, 0 为从当前时间拉取

    • count: number

      拉取条数,获取条数, 范围 1 - 20

    • callback: ICallback<IReceivedMessageV2[], boolean>
    • Optional objectName: string
    • Optional order: 0 | 1

      获取顺序,默认为 0。0 为升序,获取消息发送时间比 timestamp 更早的消息;1 为降序。

    Returns void

  • joinChatRoom(chatRoomId: string, count: number, callback: ICallback<void, void>): void
  • 加入聊天室

    Parameters

    • chatRoomId: string

      聊天室 id

    • count: number

      拉取聊天室消息数量

    • callback: ICallback<void, void>

    Returns void

  • quitChatRoom(chatRoomId: string, callback: ICallback<void, void>): void
  • 退出聊天室

    Parameters

    • chatRoomId: string

      聊天室 id

    • callback: ICallback<void, void>

    Returns void

  • 获取聊天室信息

    Parameters

    • chatRoomId: string

      聊天室 id

    • count: number

      获取人数, 范围 0 - 20

      1. 传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表
      2. 传入其他大于 0 的值返回聊天室信息,结果仅包含包含不多于 20 人的成员信息和当前成员总数。最大值为 20
    • order: 1 | 2

      排序方式,1 为正序,2 为倒序

    • callback: ICallback<IV2ChatRoomInfo, void>

    Returns void

  • 在指定聊天室中设置自定义属性

    description

    仅聊天室中不存在此属性或属性设置者为己方时可设置成功

    Parameters

    Returns void

  • 批量设置聊天室自定义属性

    Parameters

    Returns void

  • 在指定聊天室中强制增加 / 修改任意聊天室属性

    description

    仅聊天室中不存在此属性或属性设置者为己方时可设置成功

    Parameters

    Returns void

  • 删除聊天室属性

    description

    该方法仅限于删除自己设置的聊天室属性

    Parameters

    Returns void

  • removeChatRoomEntries(chatRoomId: string, options: { entries: string[] }, callback: ICallback<void, void>): void
  • 批量删除聊天室属性

    description

    仅限于删除自己设置的聊天室属性

    Parameters

    • chatRoomId: string
    • options: { entries: string[] }

      entries属性名称集合, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符

      • entries: string[]
    • callback: ICallback<void, void>

    Returns void

  • 强制删除任意聊天室属性

    description

    该方法仅限于删除自己设置的聊天室属性

    Parameters

    Returns void

  • getChatroomEntry(chatRoomId: string, key: string, callback: ICallback<string, void>): void
  • 获取聊天室中的指定属性

    Parameters

    • chatRoomId: string

      聊天室房间 id

    • key: string

      属性键名

    • callback: ICallback<string, void>

    Returns void

  • getAllChatroomEntries(chatRoomId: string, callback: ICallback<{}, void>): void
  • 获取聊天室内的所有属性

    Parameters

    • chatRoomId: string

      聊天室房间 id

    • callback: ICallback<{}, void>

    Returns void

  • getChatRoomHistoryMessages(chatRoomId: string, count: number, order: 0 | 1, callback: ICallback<IReceivedMessageV2[], boolean>, timestamp?: number): void
  • 拉取聊天室内的历史消息

    Parameters

    • chatRoomId: string
    • count: number

      拉取消息条数, 有效值范围 1 - 20

    • order: 0 | 1

      获取顺序,默认值为 0。

      • 0:降序,用于获取早于指定时间戳发送的消息
      • 1:升序,用于获取晚于指定时间戳发送的消息
    • callback: ICallback<IReceivedMessageV2[], boolean>
    • timestamp: number = 0

      v3.0 版本中的新增参数,用于指定拉取消息用到的时间戳。默认值为0,表示按当前时间拉取

    Returns void

  • setDeviceInfo(option: { id: string }): void
  • deprecated

    Parameters

    • option: { id: string }
      • id: string

    Returns void

  • 获取当前 IM 连接状态

    Returns RCConnectionStatus

  • 通过 messageUId 删除消息

    Parameters

    Returns void

  • 通过时间戳删除消息

    Parameters

    Returns void

  • getFileToken(fileType: FileType, callback: ICallback<IUploadAuth & { bos: string; qiniu: string }, void>, fileName?: string, httpMethod?: "PUT" | "POST", queryString?: string): void
  • 获取存储服务鉴权信息

    description

    httpMethodqueryString 为 STC S3 分段上传时的专属参数,STC 分段上传包含三个过程:

    1. 开始分段前调用,此时 httpMethod 值应为 POSTqueryString 值为 uploads,filename为空
    2. 上传请求前调用,此时 httpMethod 值应为 PUTqueryString 值为 partNumber={partamNumer}&uploadId={uploadId}, filename为第一个步骤生成的filename
    3. 上传结束前调用,此时 httpMethod 值应为 POSTqueryString 值为 uploadId={uploadId},filename为第一个步骤生成的filename

    Parameters

    • fileType: FileType

      文件类型

    • callback: ICallback<IUploadAuth & { bos: string; qiniu: string }, void>
    • Optional fileName: string

      文件名称

    • Optional httpMethod: "PUT" | "POST"

      STC 分段上传时的必填参数,有效值为 PUT | POST

    • Optional queryString: string

      STC 分段上传时的查询字符串

    Returns void

  • 获取文件地址

    Parameters

    • fileType: FileType

      上传类型

    • fileName: string
    • saveName: string

      下载存储文件名

    • callback: ICallback<IGetFileUrl, void>

      结果回调函数

    • Optional uploadRes: { isBosRes: boolean; downloadUrl: string }

      上传插件返回的数据

      • isBosRes: boolean
      • downloadUrl: string
    • Optional serverType: UploadMethod

      存储服务标识

    Returns void

  • 创建标签

    Parameters

    Returns void

  • removeTag(tagId: string, callback: ICallback<void, void>): void
  • 删除标签

    Parameters

    • tagId: string

      标签 ID

    • callback: ICallback<void, void>

    Returns void

  • 编辑标签

    Parameters

    Returns void

  • 获取标签列表

    Parameters

    Returns void

  • 添加会话到指定标签

    Parameters

    Returns void

  • 删除指定标签中会话

    Parameters

    Returns void

  • 删除指定会话中标签

    Parameters

    Returns void

  • 分页获取标签下会话列表

    Parameters

    Returns void

  • getUnreadCountByTag(tagId: string, containMuted: boolean, callback: ICallback<number, void>): void
  • 根据标签获取未读消息数

    Parameters

    • tagId: string

      标签id

    • containMuted: boolean

      是否包含免打扰

    • callback: ICallback<number, void>

    Returns void

  • setConversationStatusInTag(tagId: string, conversation: IConversationOption, status: { isTop: boolean }, callback: ICallback<void, void>): void
  • 设置标签中会话置顶

    Parameters

    • tagId: string

      标签id

    • conversation: IConversationOption

      会话

    • status: { isTop: boolean }

      状态

      • isTop: boolean
    • callback: ICallback<void, void>

    Returns void

  • callExtra(method: string, callback: ICallback<unknown, unknown>, ...args: any[]): void
  • 调用非标准接口 - 所谓非标准接口,是为某些特定需求或产品临时添加的,暂未采纳为标准接口的方法。

    Parameters

    • method: string

      接口定义名称

    • callback: ICallback<unknown, unknown>

      回调函数

    • Rest ...args: any[]

      参数列表

    Returns void

  • hasRemoteUnreadMessages(token: string, callback: ICallback<Boolean, void>): void
  • 是否有远端未读消息 ( C++ )

    description

    Parameters

    • token: string
    • callback: ICallback<Boolean, void>

    Returns void

  • setUserStatusListener(config: { userIds: string[] }, listener: Function): void
  • 设置用户在线状态监听器

    Parameters

    • config: { userIds: string[] }
      • userIds: string[]
    • listener: Function

    Returns void

  • setUserStatus(status: number, callback: ICallback<Boolean, void>): void
  • 设置用户在线状态

    Parameters

    • status: number

      在线 10、离开 11、忙碌 12

    • callback: ICallback<Boolean, void>

    Returns void

  • getUserStatus(userId: string, callback: ICallback<{ status?: number }, void>): void
  • 获取用户在线状态

    Parameters

    • userId: string

      用户 ID

    • callback: ICallback<{ status?: number }, void>

    Returns void

  • addToBlacklist(userId: string, callback: ICallback<void, void>): void
  • 加入黑名单

    Parameters

    • userId: string

      用户 ID

    • callback: ICallback<void, void>

    Returns void

  • removeFromBlacklist(userId: string, callback: ICallback<void, void>): void
  • 将指定用户移除黑名单

    Parameters

    • userId: string

      用户 ID

    • callback: ICallback<void, void>

    Returns void

  • getBlacklist(callback: ICallback<string[], void>): void
  • 获取黑名单列表

    Parameters

    Returns void

  • getBlacklistStatus(userId: string, callback: ICallback<number, void>): void
  • 获取指定人员在黑名单中的状态

    Parameters

    • userId: string

      用户 ID

    • callback: ICallback<number, void>

    Returns void

  • 本地批量插入消息

    Parameters

    Returns void

  • 获取会话下所有消息数

    Parameters

    Returns void

  • 获取远端历史消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      会话 ID

    • timestamp: number

      获取时间戳, 0 为从当前时间拉取

    • count: number

      拉取条数,获取条数, 范围 1 - 20

    • callback: ICallback<IReceivedMessageV2[], boolean>
    • options: { order?: 0 | 1 } = {}
      • Optional order?: 0 | 1

        获取顺序, 默认为 0

    Returns void

  • 删除本地消息

    Parameters

    • _: ConversationType

      会话类型,参数无效

    • __: string

      目标 ID,参数无效

    • messageIds: number[]

      消息 ID 数组

    • callback: ICallback<boolean, void>

    Returns void

  • deleteLocalMessagesByTimestamp(conversationType: ConversationType, targetId: string, timestamp: number, cleanSpace: boolean, callback: ICallback<boolean, void>): void
  • 从本地消息数据库中删除某一会话指定时间之前的消息数据

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      目标 ID

    • timestamp: number

      指定删除该时间戳之前的消息

    • cleanSpace: boolean

      指定删除该时间戳之前的消息。是否清理数据条目所使用的磁盘空间。清理磁盘空间会阻塞进程且耗时较长,不推荐使用。 数据在被抹除的情况下,未清理的磁盘空间会在后续存储操作中复用,且对数据查询无影响

    • callback: ICallback<boolean, void>

    Returns void

  • 清空会话下历史消息

    Parameters

    Returns void

  • 获取消息

    Parameters

    Returns void

  • setMessageSentStatus(messageId: number, sentStatus: number, callback: ICallback<boolean, void>): void
  • 设置消息发送状态

    Parameters

    • messageId: number
    • sentStatus: number
    • callback: ICallback<boolean, void>

    Returns void

  • setMessageReceivedStatus(messageId: number, receivedStatus: number, callback: ICallback<boolean, void>): void
  • 设置消息接收状态

    Parameters

    • messageId: number
    • receivedStatus: number
    • callback: ICallback<boolean, void>

    Returns void

  • setMessageContent(messageId: number, content: any, objectName: string, callback: ICallback<boolean, void>): void
  • 设置消息内容

    Parameters

    • messageId: number

      本地消息 ID

    • content: any

      消息内容

    • objectName: string

      消息类型

    • callback: ICallback<boolean, void>

    Returns void

  • setMessageSearchField(messageId: number, content: any, searchFiles: string): void
  • 设置消息搜索字段

    Parameters

    • messageId: number

      本地消息 ID

    • content: any

      消息内容

    • searchFiles: string

      搜索字段

    Returns void

  • 按内容搜索会话

    Parameters

    • keyword: string

      关键字

    • callback: ICallback<IConversation[], void>
    • Optional conversationTypes: ConversationType[]

      会话类型数组

    • Optional customMessageTypes: string[]

      自定义消息类型,若关键字属于自定义消息类型,需传入

    Returns void

  • 按内容搜索全部会话(包含全部 channel)

    Parameters

    • keyword: string

      关键字

    • callback: ICallback<IConversation[], void>

      回调函数

    • customMessageTypes: string[] = []

      自定义消息类型,若关键字属于自定义消息类型,需传入

    • Optional conversationTypes: ConversationType[]

      会话类型数组

    Returns void

  • 按内容搜索会话内的消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      目标 ID

    • keyword: string

      搜索内容

    • timestamp: number

      搜索时间, 搜索该时间之前的消息

    • count: number

      获取的数量

    • total: number
    • callback: ICallback<IReceivedMessageV2[], number>

    Returns void

  • 按内容搜索指定会话(不区分 channelId)的消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      目标 ID

    • keyword: string

      搜索内容

    • timestamp: number

      搜索时间, 搜索该时间之前的消息

    • count: number

      获取的数量

    • callback: ICallback<IReceivedMessageV2[], number>

    Returns void

  • searchMessageByContentInTimeRangeWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, startTime: number, endTime: number, offset: number, limit: number, callback: ICallback<IReceivedMessageV2[], void>): void
  • 按内容搜索时间范围内指定会话(不区分 channelId)的消息

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      目标 ID

    • keyword: string

      搜索内容

    • startTime: number

      开始时间

    • endTime: number

      结束时间

    • offset: number

      偏移值

    • limit: number

      数量

    • callback: ICallback<IReceivedMessageV2[], void>

    Returns void

  • 获取会话下所有未读的 @ 消息

    Parameters

    Returns null | IReceivedMessageV2[]

  • clearUnreadCountByTimestamp(conversationType: ConversationType, targetId: string, timestamp: number, callback: ICallback<boolean, void>): void
  • 清除时间戳前的未读数

    Parameters

    • conversationType: ConversationType

      会话类型

    • targetId: string

      目标 ID

    • timestamp: number

      目标 ID

    • callback: ICallback<boolean, void>

    Returns void

  • 获取第一个未读消息

    Parameters

    Returns void

  • 获取会话免打扰状态

    Parameters

    Returns void

  • getServerTime(): number
  • 获取服务器时间

    Returns number

  • getGroupMessageDeliverList(targetId: string, messageUId: string, callback: ICallback<IGroupMessageDeliverInfo, void>): void
  • 获取群组消息送达列表

    Parameters

    • targetId: string

      会话 Id

    • messageUId: string

      消息 UID

    • callback: ICallback<IGroupMessageDeliverInfo, void>

    Returns void

  • getPrivateMessageDeliverTime(messageUId: string, callback: ICallback<number, void>): void
  • 获取单聊消息送达列表

    Parameters

    • messageUId: string

      消息 UID

    • callback: ICallback<number, void>

    Returns void