消息介绍
客户端 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 | 卡片消息 |