消息介绍
客户端 SDK 中用来表示消息的实体类为 KIMCoreMessage
。
KIMCoreMessage
实体类封装了以下内容:
普通消息或媒体消息的具体内容,即基于
KIMCoreMessageContent
或KIMCoreMediaMessageContent
下具体类型的消息内容对象,例如文本消息KIMCoreTextMessage
、图片消息KIMCoreImageMessage
、视频消息KIMCoreVideoMessage
等等。消息的属性信息,如发送者 ID、所属会话 ID、发送状态等等。
KIMCoreMessage
实体类中封装了消息内容对象,代表一条 KIMCoreMessage
的具体内容。
消息的具体内容分为两种类型:
KIMCoreMessageContent
,即普通类型消息内容。例如在 SDK 内置消息类型中的文本消息和合并转发消息。KIMCoreMediaMessageContent
,即多媒体类型消息。多媒体类型消息内容继承自KIMCoreMessageContent
,并在其基础上增加了对多媒体文件的处理逻辑。
消息模型
下表列出了 KIMCoreMessage
中提供的主要方法。
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
getMsgId() | String | 获取消息的唯一 ID。 1. 只有发送成功的消息才有唯一 Id。 2. 在同一个 App Key 下全局唯一。 | |
getChatId() | String | 所属会话的唯一 ID。 1. 在同一个 App Key 下全局唯一。 | |
getSendTime() | Long | 获取消息发送时间。 1. 返回值为 UNIX 时间戳,单位纳秒。 2. 发送时间为消息到达服务端时服务器的本地时间。 | |
getSenderUid() | String | 获取消息发送者 ID。 | |
getSendStatus() | KIMCoreMessageStatus | 获取发送消息的状态,如果返回 null,说明不是本端本地发送的消息,或者是已经发送成功的消息。 | |
isRecall() | Boolean | 该消息是否为撤回消息 | |
isReply() | Boolean | 该消息是否为回复类消息 | |
getRefMsg() | KIMCoreMessage? | 被回复的消息实体 | |
getMention() | List String | 被@人的列表,使用 userid | |
getId() | Long | 消息在本地数据库中的唯一 id | |
getContent() | KIMCoreMessageContent | 消息内容包装实体 | |
getMsgNotices() | List<KIMCoreMsgNotice>? | 消息强提醒数据最多3个 |
下表列出了 KIMCoreMessageStatus
中提供的主要方法。
属性 | 类型 | 说明 |
---|---|---|
messageStatus | Int | 发送状态。 Constant.SendStatus |
progress | Int | 发送进度,媒体类消息可能会有该值 |
ctime | Long | 发送的时间,单位 ns |
下表列出了 KIMCoreMsgNotice
中提供的主要方法
属性 | 类型 | 说明 |
---|---|---|
noticeType | String | 强提醒类型 |
isAll | Boolean | 是否全员 |
toUserIds | List<String> | 指定用户接收强提醒 |
以下是所有基于 KIMCoreMessageContent
和 KIMCoreMediaMessageContent
的 SDK 内置消息类型。
消息类型 | 名字 | 描述 |
---|---|---|
文本消息 | KIMCoreTextMessage | 文本消息 |
合并转发消息 | KIMCoreMergeForwardMessage | 合并转发消息 |
文件消息 | KIMCoreFileMessage | 文件消息 |
图片消息 | KIMCoreImageMessage | 图片消息 |
图文混排消息 | KIMCorePicTextMessage | 图文消息 |
视频消息 | KIMCoreVideoMessage | 视频消息 |
音频消息 | KIMCoreVoiceMessage | 语音消息 |
卡片消息 | KIMCoreCardMessage | 卡片消息 |