会话介绍
会话是指融云 SDK 根据每条消息的发送方、接收方以及会话类型等信息,自动建立并维护的逻辑关系,是一种抽象概念。
会话类型
融云支持多种会话类型,以满足不同业务场景需求。客户端 SDK 通过 RCIMConversationType
枚举来表示各类型会话,各枚举值代表的含义参考下表:
枚举值 | 会话类型 | 值 |
---|---|---|
RCIMConversationType.INVALID | 暂不支持,SDK 保留类型,开发者不可使用 | 0 |
RCIMConversationType.PRIVATE | 单聊会话 | 1 |
RCIMConversationType.GROUP | 群组会话 | 2 |
RCIMConversationType.CHATROOM | 聊天室会话 | 3 |
RCIMConversationType.SYSTEM | 系统会话 | 4 |
RCIMConversationType.ULTRA_GROUP | 超级群会话 | 5 |
单聊会话
指两个用户一对一进行聊天,两个用户间可以是好友也可以是陌生人,融云不对用户的关系进行维护管理,会话关系由融云负责建立并保持。
单聊类型会话里的消息会保存在客户端本地数据库中。
群组会话
群组指两个以上用户一起进行聊天,群组成员信息由 App 提供并进行维系,融云只负责将消息传达给群组中的所有用户。每个群最大人数上限为 3000 人,App 内的群组数量没有限制。
群组类型会话里的消息会保存在客户端本地数据库中。
超级群会话
超级群(UltraGroup)提供了一种新的群组业务形态,支持在群会话中创建独立的频道(channel),超级群的消息数据(会话、消息、未读数)和群组成员支持分频道进行聚合,各个频道之间消息独立。
超级群类型会话里的消息会保存在客户端本地数据库中,更多内容请参见超级群概述。
聊天室会话
聊天室成员不设用户上限,海量消息并发即时到达,用户退出聊天室后不会再接收到任何聊天室中的消息,没有推送通知功能。会话关系由融云负责建立并保持连接,通过 SDK 相关接口,可以让用户加入或者退出聊天室。
SDK 不保存聊天室消息,在退出聊天室时会清空此聊天室所有数据,更多内容请参见聊天室概述。
系统会话
系统会话是指利用系统帐号向用户发送消息从而建立的会话关系,此类型会话可以是通过调用广播接口发送广播来建立,也可以是加好友等单条通知消息而建立的会话。
会话实体类
客户端 SDK 中封装的会话实体类是 RCIMConversation,所有会话相关的信息都从该实体类中获取。
下表列出了 RCIMConversation中提供的主要成员
属性 | 类型 | 描述 |
---|---|---|
conversationType | RCIMConversationType | 会话类型,参考上文详细描述。 |
targetId | string | 会话 Id,单聊时为接收方 Id,群组会话中为群组 Id ,聊天室会话中为聊天室 Id,系统会话为开发者指定的系统账号 Id。 |
channelId | string | 频道 ID |
unreadCount | int | 当前会话未读消息数量 |
mentionedCount | int | 获取本会话里自己被 @ 的消息数量 |
top | bool | 是否置顶 |
draft | string | 会话里保存的草稿信息 |
notificationLevel | RCIMPushNotificationLevel | 免打扰级别 |
lastMessage | RCIMMessage | 会话中在客户端本地存储的最后一条消息的消息内容。 |