文档导航
iOS
SDK 版本:  5.X
公告:融云新文档中心已上线,欢迎到新文档中心阅读 iOS IMLibiOS IMKit 的文档。

会话介绍

更新时间:2024-02-06 PDF

会话介绍

会话是指融云 SDK 根据每条消息的发送方、接收方以及会话类型等信息,自动建立并维护的逻辑关系,是一种抽象概念。

会话类型

融云支持多种会话类型,以满足不同业务场景需求。客户端 SDK 通过 RCConversationType 枚举来表示各类型会话,各枚举值代表的含义参考下表:

枚举值 会话类型
ConversationType_PRIVATE 单聊会话
ConversationType_GROUP 群组会话
ConversationType_ULTRAGROUP 超级群会话
ConversationType_CHATROOM 聊天室会话
ConversationType_SYSTEM 系统会话

RCConversationType 枚举中还定义了其它会话类型,目前已废弃,不再维护。

单聊会话

指两个用户一对一进行聊天,两个用户间可以是好友也可以是陌生人,融云不对用户的关系进行维护管理,会话关系由融云负责建立并保持。

单聊类型会话里的消息会保存在客户端本地数据库中。

群组会话

群组指两个以上用户一起进行聊天,群组成员信息由 App 提供并进行维系,融云只负责将消息传达给群组中的所有用户。每个群最大人数上限为 3000 人,App 内的群组数量没有限制。

群组类型会话里的消息会保存在客户端本地数据库中。

超级群会话

超级群会话指无成员上限的多人聊天服务,海量消息并发即时到达,支持消息推送服务。群组成员信息由 App 提供并维系,融云负责将消息传达给群成员。App 内超级群数量没有限制,超级群无人数上限,一个用户可加入 100 个超级群。

超级群类型会话里的消息会保存在客户端本地数据库中,更多内容请参见超级群概述

聊天室会话

聊天室成员不设用户上限,海量消息并发即时到达,用户退出聊天室后不会再接收到任何聊天室中的消息,没有推送通知功能。会话关系由融云负责建立并保持连接,通过 SDK 相关接口,可以让用户加入或者退出聊天室。

SDK 不保存聊天室消息,在退出聊天室时会清空此聊天室所有数据,更多内容请参见聊天室概述

系统会话

系统会话是指利用系统帐号向用户发送消息从而建立的会话关系,此类型会话可以是通过调用广播接口发送广播来建立,也可以是加好友等单条通知消息而建立的会话。

会话实体类

客户端 SDK 中封装的会话实体类是 RCConversation,所有会话相关的信息都从该实体类中获取。

下表列出了 RCConversation 中提供的主要属性。

属性 类型 描述
targetId NSString 会话 ID(或目标 ID),用于标识会话对端。
  • 单聊时,会话 ID 直接使用对方的用户 ID。
  • 在群组、聊天室、超级群中,为对应的群组、聊天室、超级群 ID。
  • 系统会话中,为开发者指定的系统账号 ID。
channelId NSString 该会话的业务标识,长度限制为 20 字符。仅适用于超级群。
conversationTitle NSString 会话标题。
conversationType RCConversationType 会话类型,参考上文详细描述。
unreadMessageCount Int 会话中未读消息数。
isTop BOOL 会话是否置顶。
lastestMessage RCMessageContent 会话中在客户端本地存储的最后一条消息的消息内容。关于消息的存储属性请参考 消息介绍 中的说明。
lastestMessageId long 会话中最后一条在客户端本地存储的消息的 ID。
draft NSString 会话里保存的草稿信息,参考草稿详细说明
objectName NSString 会话中最后一条消息的类型名,与消息内容体对应。预定义消息类型的 objectName 参见消息类型概述。自定义消息类型的 ObjectName 为您自行指定的值。
receivedTime long long 会话最后一条消息接收时间。
1. 返回值为 unix 时间戳,单位毫秒。
2. 接收时间为消息到达接收端时客户端的本地时间。
sentTime long long 会话最后一条消息发送时间,为 Unix 时间戳,单位毫秒
1. 当会话里最后一条消息为发送成功或者接收到的消息时,此方法返回的是该消息到达融云服务器的时间。
2. 当会话里最后一条消息为发送失败的消息时,此方法返回此条消息的本地发送时间。
3. 当会话有草稿信息,且草稿保存时间大于最后一条消息时间时,此方法返回草稿保存时间。
receivedStatus RCReceivedStatus 会话中最后一条消息的接收状态。
sentStatus RCSentStatus 会话中最后一条消息的发送状态。
senderUserId NSString 会话中最后一条消息发送者 ID。
lastestMessageDirection RCMessageDirection 会话中最后一条消息的方向,分为发送和接收。
lastestMessageUId NSString 会话中最后一条消息的唯一 ID。
1. 只有发送成功的消息才有唯一 Id。
2. 在同一个 Appkey 下全局唯一。
latestMessageReadReceiptInfo RCReadReceiptInfo 会话中最后一条消息的阅读回执状态,仅适用于群聊。
latestMessageMessageConfig RCMessageConfig 会话中最后一条消息的配置信息。
latestMessageCanIncludeExpansion BOOL 会话中最后一条消息是否可以包含扩展信息。
1. 该属性在消息发送时确定,发送之后不能再做修改;
2. 扩展信息只支持单聊、群组和超级群,其它会话类型不能设置扩展信息。
latestExpansion NSDictionary<NSString *, NSString *> 会话中最后一条消息的扩展信息列表,详情请参考消息扩展
hasUnreadMentioned BOOL 会话中是否存在被 @ 的消息
mentionedCount int 本会话里自己被 @ 的消息数量
blockStatus RCConversationNotificationStatus 会话的免打扰状态
notificationLevel RCPushNotificationLevel 会话的免打扰级别,详见免打扰功能概述
channelType RCUltraGroupChannelType 超级群频道类型,只有 ConversationType 为超级群时该字段有效,非超级群时为 0
firstUnreadMsgSendTime long long 从 5.2.5 开始,支持会话中第一条未读消息发送时间属性,为 Unix 时间戳,单位毫秒。仅支持超级群会话。
文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈