Friend

类型: class

好友信息。

userId

类型: string | undefined

用户 ID。

applyTime

类型: Date | undefined

好友申请时间。

createTime

类型: Date | undefined

好友创建时间(申请通过时间)。

ext

类型: { [k: string]: string; } | null | undefined

用户额外信息。

FriendApply

类型: class

好友申请信息

id

类型: string | undefined

申请 ID

fromUserId

类型: string | undefined

发起方

toUserId

类型: string | undefined

接收方

applyTime

类型: Date | undefined

申请时间

ext

类型: { [k: string]: string; } | null | undefined

扩展字段

status

类型: FriendApplyStatus | undefined

申请状态

index

类型: Long | null | undefined

申请下标(可用于同步已读状态)

FriendApplyStatus

类型: enum

好友申请状态

MessageDirection

类型: enum

消息方向

ReplyFriendAttitude

类型: enum

好友申请回应状态。

InitResult

类型: enum

SDK 初始化状态。

Conversation

类型: class

会话结构。

id

类型: string

会话 ID。
单聊会话 ID 规则为 {inboxType}:1:{minUid}:{maxUid},群聊为 short id。

shortId

类型: string

会话 short id,int64。

type

类型: im_proto.ConversationType

会话类型。

isMember

类型: boolean

是否为会话成员。

participantCount

类型: number

会话成员总数。(缓存态,不实时)

onlineMemberCount

类型: number

在线用户人数。

userInfo

类型: Participant

当前用户信息。

inboxType

类型: number

只读, 会话所在的信箱类型。

status

类型: ConversationStatus

会话状态。

coreInfo

类型: ConversationCoreInfo

会话的 Core 信息。

settingInfo

类型: ConversationSettingInfo

会话的 Setting 信息。

isOffline

类型: boolean

会话是否为离线状态。(未从服务端拉取完整信息)

mode

类型: number

只读, 会话推拉模式(陌生人),熟人会话是 0。

isStrangerConversation

类型: boolean

只读, 是否为陌生人会话。

pushStatus

类型: PushStatus

只读, 消息推送状态,参看 PushStatus。

weakMuteInfo

类型: ConversationSettingWeakMuteInfo

只读, 低打扰模式关注配置,参看 PushStatus。

isStickOnTop

类型: boolean

只读, 会话是否置顶,参看 StickTopState。

isFavorite

类型: boolean

只读, 会话是否被收藏,参看 FavoriteState。

ext

类型: { [k: string]: string; }

只读, 获得会话的 ext。

lastMessage

类型: Message | null

只读, 获得最后一条消息(最新消息)。

firstMessage

类型: Message | null

只读, 获得第一条消息(最旧消息)。

readIndex

类型: Long

只读, 获得会话内已读的最近一条消息的序号。

version

类型: Long

只读, 会话的 Setting 版本。

updatedAt

类型: Date

只读, 获得最后一条消息的创建时间,并暂时作为会话的显示更新时间。
如果没有创建消息,会返回 0。

isGeneralConversation

类型: boolean

只读, 是否为普通会话。普通会话包括单聊和群聊,不包括直播群。

toParticipantUserId

类型: string | undefined

只读, 返回单聊会话的对方用户的 uid。

isBlocked

类型: boolean

只读, 会话是否禁言。

isBlockNormalOnly

类型: boolean

只读, 会话是否只禁言普通成员。

lastVisibleMessage

获得可见的最后一条消息,参看 Message.visible。

lastPopVisibleMessage

获得需要顶出的最后一条消息,参看 Message.unpop。

unreadCount

获得会话当前的未读数。
注意是一个 getter。

unreadCountWithWhiteList

低打扰模式下白名单内的未读消息数

unreadMessageList

用户当前会话内的未读消息

unreadMessageListWithWhiteList

用户当前会话内,满足低打扰消息白名单的未读消息

firstMessageIndex

第一条消息的位置

lastMessageIndex

最后一条消息的位置

lastMessageOrder

最后一条消息的顺序编号

forceRefreshUnreadCount

强制刷新未读数

getMessageList

返回当前会话的所有消息,map<string, Message>。
Key 是消息的 clientId,默认过滤不可见消息。

getParticipantList

返回当前会话的所有成员,map<string, Message>。

ConversationType

类型: enum

会话类型。

Participant

类型: class

会话成员对象

userId

类型: string

用户 id

secUid

类型: string

加密 uid

sortOrder

类型: Long | undefined

列表排序

role

类型: number | undefined

成员角色 0: 普通成员 1: 群主 2: 管理员 3:访客

alias

类型: string | undefined

群成员在群里的昵称

conversationId

类型: string

会话 ID,群聊时等于消息体中的 conversationShortId

blocked

类型: boolean | undefined

是否被禁言

leftBlockTime

类型: Long | undefined

被禁言的话还有多长时间解封

minIndex

类型: Long

用户在会话内的最小可拉取位置

readIndex

类型: Long

会话内成员最近一条已读消息的序号 (对应消息 indexInConversation)

readOrder

类型: Long

已读水位 (对应消息 orderInConversation)

isSelf

类型: boolean

只读, 是否是自己

ext

类型: { [k: string]: string; }

扩展字段

ConversationStatus

类型: enum

会话状态

ConversationCoreInfo

类型: class

会话 CoreInfo 结构

conversationId

类型: string

只读, 会话 id

version

类型: Long

Core Info 的版本号

name

类型: string

会话名称

desc

类型: string

会话描述

icon

类型: string

会话图标 / 群头像

notice

类型: string

群公告

owner

类型: string

群主 / 创建者

secOwner

类型: string

加密 uid 群主

inboxType

类型: number

信箱类型

blockStatus

类型: im_proto.BlockStatus

禁言状态

blockNormalOnly

类型: boolean

是否只禁言普通成员

ext

类型: { [k: string]: string; }

会话 Core Ext

BlockStatus

类型: enum

禁言状态。

ConversationSettingInfo

类型: class

会话 Setting Info 结构

conversationId

类型: string

只读, 会话 id

version

类型: Long

会话 Setting 版本

stickTop

类型: StickTopState

置顶状态

setTopTime

类型: Long

mute

类型: MuteState

免打扰状态

pushStatus

类型: PushStatus

消息推送状态

favor

类型: FavoriteState

收藏状态

setFavoriteTime

类型: Long

设置收藏的时间

readIndex

类型: Long

ext

类型: { [k: string]: string; }

会话 Setting Ext

weakMuteInfo

类型: ConversationSettingWeakMuteInfo

只读, 低打扰会话配置

StickTopState

类型: enum

置顶状态。

MuteState

类型: enum

免打扰状态。

FavoriteState

类型: enum

收藏状态。

ConversationSettingWeakMuteInfo

类型: interface

会话低打扰模式配置。

whiteUids

类型: Long[] | undefined

白名单用户列表。

whiteMsgTypes

类型: number[] | undefined

消息类型白名单列表。

Message

类型: class

消息结构

serverId

类型: string

消息的 Server Id, string 形式的一个 int64

type

类型: number

消息类型

conversationId

类型: string

消息所属会话 id

conversationShortId

类型: string

消息所属会话 short id

conversationType

类型: im_proto.ConversationType

消息所属会话类型

clientId

类型: string

消息客户端 id

sender

类型: string

消息发送方 uid

secSender

类型: string

消息发送方加密 uid

createdAt

类型: Date

消息创建时间

content

类型: string

消息内容

version

类型: Long

消息版本号

serverStatus

类型: ServerMessageStatus

消息状态

ext

类型: { [k: string]: string; }

消息 ext 字段

flightStatus

类型: FlightStatus

消息发送状态

property

类型: { [k: string]: MessageProperty[]; }

消息属性

referenceInfo

类型: im_proto.IReferenceInfo | undefined

消息引用

isOffline

类型: boolean

消息是否离线

source

类型: MessageSource

消息来源

isNormalMsg

类型: boolean

只读, 是否是一条普通消息, 区别于 Command 这种特殊消息

isCommandMsg

类型: boolean

只读, 是否是一条命令消息 (type === 50001)

isSpecialMessage

类型: boolean

只读, 是否是一条特殊消息 (type >= 50000)

visible

类型: boolean

只读, 消息是否对自己可见

unpop

类型: boolean

只读, 消息是否不需要被顶出

increaseUnread

类型: boolean

只读, 该消息是否需要增加未读数

isFromMe

类型: boolean

只读, 消息是否是自己发送的

isRecalled

类型: boolean

只读, 消息是否被撤回

isMentioned

类型: boolean

只读, 消息提到了自己

mentionedUsers

类型: string[]

消息里包含的被 @ 用户

isStrangerMessage

类型: boolean

只读, 陌生人消息

isRootReference

类型: boolean

只读, 消息是否为起始引用

moveReadIndex

类型: boolean

只读, 消息是否触发已读水位更新

updateLastMessage

类型: boolean

只读, 消息是否可以作为会话最新消息

isGeneralConversation

类型: boolean

只读, 是否为普通会话。普通会话包括单聊和群聊,不包括直播群。

messagePriority

类型: im_proto.MessagePriority | undefined

只读, 消息的优先级(适用于直播群消息)

ServerMessageStatus

类型: enum

消息服务端状态

FlightStatus

类型: enum

消息发送状态

MessageProperty

类型: class

消息设置属性,一般的使用场景有:类似 lark 的给消息点赞、加急消息等。

messageId

类型: string

消息 ID (sdk保存, 冗余检索字段)

conversationId

类型: string

会话 ID (sdk保存, 冗余检索字段)

key

类型: string

属性键 (sdk保存, 冗余检索字段)

userId

类型: string

操作用户 ID

secUid

类型: string

操作用户 secUid

createTime

类型: Date

属性创建时间

idempotentId

类型: string

幂等操作 ID,由业务方自行生成

value

类型: string

属性值

status

类型: PropertyStatus

属性状态

PropertyStatus

类型: enum

消息属性发送状态

IReferenceInfo

类型: interface

引用消息相关数据

referenced_message_id

类型: Long

被引用消息的 ID

hint

类型: string

业务相关辅助信息 (JSON)

ref_message_type

类型: Long

被引用消息的类型

referenced_message_status

类型: MessageStatus

被引用消息的状态

root_message_id

类型: Long | null | undefined

引用消息链开头的消息 ID

root_message_conv_index

类型: Long | null | undefined

被引用消息在会话中的 index

MessageStatus

类型: enum

消息状态

MessageSource

类型: enum

消息来源

MessagePriority

类型: enum

消息的优先级(适用于直播群消息)

ICheckCodeResult

类型: interface

API 请求结果封装泛型
T 为操作处理的对象类型
U 为服务端原始响应

success

类型: boolean

请求是否成功

payload

类型: T | null

操作处理的对象

checkCode

类型: Long | undefined

校验码

checkMsg

类型: string | undefined

校验消息

body

类型: U | undefined

原始响应

statusCode

类型: number | undefined

响应码

statusMsg

类型: string | undefined

响应消息

innerError

类型: BaseError | undefined

原始异常

logid

类型: string | undefined

请求 logid

BaseError

类型: class

基本错误类型

type

类型: ErrorType

错误类型

msg

类型: string

错误描述

innerError

类型: BaseError | Error | undefined

内部错误, 可能是一个 Error 或 BaseError

reachServer

类型: boolean | undefined

如果是一个网络错误, 这次的网络请求是否已经达到了服务端
代表这个错误可能是服务端返回的逻辑错误

sender

类型: any

错误抛出源对象

logid

类型: string | undefined

args

类型: { [k: string]: any; } | undefined

参数

OPERATION_TYPE

类型: enum

操作类型。

ModifyMessagePropertyResult

设置消息属性结果。

SortType

类型: enum

排序类型。

CreateConversationResult

创建会话结果。

PushStatus

类型: enum

消息推送模式。

SetConversationSettingInfoResult

设置消息结果。

AddParticipantResult

添加成员结果。

RemoveParticipantResult
UpdateParticipantResult

更新群成员结果。

InfoKeys

类型: enum

Ext 字段 Key

IMOption

类型: interface

IM 实例化参数

appId

类型: number

应用 id,在申请接入 imcloud 时下发的配置中拿到

deviceId

类型: string

设备 id,web pc 端一般没有这个概念,建议传用户 id, web 移动端可以获取到设备 id 的话建议传设备 id

userId

类型: string

用户id

secUid

类型: string | undefined

加密uid

authType

类型: im_proto.AuthType | undefined

鉴权方式,1: session 鉴权. 2: token 鉴权

inboxType

类型: number | number[] | undefined

信箱类型,用于一个app下多个IM子系统隔离

headers

类型: { [k: string]: string; } | undefined

自定义 headers,通常用不上

acceptIncorrectFrame

类型: boolean | undefined

允许接受 service id 不正确的 Frontier Frame

acceptIncorrectInboxType

类型: boolean | undefined

允许接受 InboxType 不正确的 Response

webSocketLevel

类型: WebSocketLevel | undefined

设置如何使用长链

timeout

类型: number | undefined

超时重试的最大时限,默认是 2000ms,网络不好可以适当调高

withCredentials

类型: boolean | undefined

和 XMLHttpRequest 中的 withCredentials 语义一致,是否允许跨域发送 Cookie,通常不需要打开

httpHeaders

类型: { [k: string]: string; } | undefined

自定义请求头

heartbeatInterval

类型: number | undefined

ws 心跳间隔

maxHeartbeatEmptyWindow

类型: number | undefined

ws 心跳超时时间

maxSendMsgRetryTimes

类型: number | undefined

发送消息最大重试次数

apiUrl

类型: string

oth 集群,接入的时候会拿到

devicePlatform

类型: string | undefined

字面意思,这个字段会透传给 IM Cloud

channel

类型: string | undefined

字面意思,这个字段会透传给 IM Cloud

deviceType

类型: string | undefined

字面意思,这个字段会透传给 IM Cloud

osVersion

类型: string | undefined

字面意思,这个字段会透传给 IM Cloud

versionCode

类型: string | undefined

字面意思,这个字段会透传给 IM Cloud

frontierUrl

类型: string

Websocket 路径

extended

类型: { [k: string]: string; } | undefined

如果你想在 Frontier 连接的 url 后面传别的参数可以填这里,比如 platform 之类的给 Frontier

debug

类型: boolean | undefined

开启 SDK debug,开发环境建议打开,生产环境务必关闭,主要控制日志等

injectContext

类型: string | boolean | typeof globalThis | Record<string, unknown> | undefined

debug 模式下:自定义ctx挂载对象,默认 window 对象

disableInitPull

类型: boolean | undefined

不调用初始化接口拉消息,但是 init 还是要调用的,只是不会拉消息了

pullInterval

类型: number | false | undefined

自动轮询混链补偿消息的间隔,单位 ms,关闭则设置成 false, 建议不小于 5000

unreadCountReport

类型: boolean | undefined

未读数上报

throttle

类型: number | boolean | undefined

事件触发的节流和防抖时间

triggerStrategy

类型: { [k: string]: TriggerType; } | undefined

为不同的事件,设置不同的触发策略

initSubType

类型: number | undefined

初始化的时候基于 sub_type 区分相同 appid 下的不同初始化策略,0 表示默认值(跟没有传递一样)

monitorTagKv

类型: { [k: string]: string; } | undefined

自定义监控上报数据

maxMessageCount

类型: number | undefined

本地消息数量上限,默认值 1000, 最大值 2000, 最小值 200

serialSendFileMessage

类型: boolean | undefined

发送多媒体消息是否开启串行

enableHackTimer

类型: boolean | undefined

使用web worker避开hidden page下timer延迟执行问题

conversationRefreshCount

类型: number | undefined

本地离线会话刷新缓冲数

timeCalibration

类型: boolean | undefined

是否启用时间校准

autoReadIndex

类型: boolean | undefined

根据消息发送情况自动计算 readIndex, 如果有自动回复功能请关闭这个选项, 避免误标记已读

token

使用 token 鉴权时传入获取到的 token,session 鉴权时传 '' 空字符串当传入的是一个 Function 或者 Promise 的时候,如果 IM Cloud Server 返回了 Token 过期,那么 SDK 会调用一次这个函数尝试获取一个新的 Token
如果返回的新 Token 和原来的 Token 一样,那么会报错

AuthType

类型: enum

鉴权类型,主要用于区分 token 解析方法

WebSocketLevel

类型: enum

WebSocket 启用级别

TriggerType

类型: enum

事件触发策略,用于 IMOption triggerStrategy

IMemberInfo

类型: interface

直播群成员信息

user_id

类型: Long

对应的成员 ID

is_in_conversation

类型: boolean

成员是否在直播群中(在线)

create_time

类型: Long | null | undefined

成员进群时间

ping_time

类型: Long | null | undefined

成员最后活跃 (ping) 时间

FileInfo
EventHandler

事件回调函数

Subscription

类型: class

用于取消事件监听。

GroupRole

类型: enum

群成员角色。