消息介绍
IMLib SDK 定义了 RCMessage 类,用于进行消息传输和管理。
RCMessage 模型
RCMessage 类中封装了以下关键数据:
- 用于消息传输的属性:发送者 userId、接收者 userId、所属会话类型等。
- 消息内容体: 用于封装一条消息携带的的具体内容,分为普通消息内容体和媒体消息内容体。例如,文本消息内容(RCTextMessage)属于普通消息内容体,图片消息内容(RCImageMessage)属于媒体消息内容体。消息内容体的类型,常称为消息类型,决定了使用发送普通消息还是发送媒体的接口。
提示
文档里出现的「消息」,指的是类似文本消息这种继承自 RCMessageContent
的消息 或 类似图片消息这种继承自RCMediaMessageContent
的消息。
下表描述 RCMessage 类的关键属性,完整的属性列表可参考 API 文档。
RCMessage 的数据结构如下:
属性名 | 类型 | 描述 |
---|---|---|
objectName | NSString | 消息类型的标识名,通过消息体类方法 +getObjectName 获取的值决定。 |
content | RCMessageContent | 消息携带的具体内容,必须为 RCMessageContent 或 RCMediaMessageContent 的子类对象,其中封装了不同类型消息的具体数据字段。即时通讯服务已提供预定义的消息类型,并规定了跨平台一致的消息内容体结构(参见消息类型概述),如文本、语音、图片、GIF 等。您也可以通过自定义消息内容体创建自定义消息类型。 |
conversationType | RCConversationType | 会话类型枚举,例如单聊、群聊、聊天室、超级群、系统会话等。参考会话介绍。 |
senderUserId | NSString | 消息发送者的用户 ID。 |
targetId | NSString | 会话 ID(或称目标 ID),用于标识会话对端。
|
channelId | NSString | 超级群频道 ID。 |
messageId | long | 消息 ID,消息在本地存储中的唯一 ID(数据库索引唯一值)。 |
messageUId | String | 消息 UID,在同一个 App Key 下全局唯一。只有发送成功的消息才有唯一 ID。 |
messageDirection | RCMessageDirection | 消息方向枚举,分为发送和接收。 |
sentTime | long long | 消息发送时间。发送时间为消息从发送客户端到达服务器时服务器的本地时间。使用 UNIX 时间戳,单位为毫秒。 |
receivedTime | long long | 消息接收时间。接收时间为消息到达接收客户端时客户端的本地时间。使用 UNIX 时间戳,单位为毫秒。 |
sentStatus | RCSentStatus | 发送消息的状态。如发送中、发送成功、发送失败、取消发送。 |
receivedStatusInfo | RCReceivedStatusInfo | 接收到的消息的状态类,如是否已读、是否下载等。详见消息接收状态。 |
readReceiptInfo | RCReadReceiptInfo | 群聊消息已读回执信息。详细请参考 |