跳到主要内容

会话介绍

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

会话类型

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

枚举值取值会话类型
ConversationType.Private1单聊会话
ConversationType.Group3群组会话
ConversationType.Chatroom4聊天室会话
ConversationType.System6系统会话

单聊会话

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

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

群组会话

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

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

聊天室会话

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

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

系统会话

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

会话实体类

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

下表列出了 Conversation 中提供的主要属性:

属性名类型描述
conversationTypeConversationType会话类型,参考上文详细描述。
targetIdstring会话 ID(或目标 ID),用于标识会话对端。
  • 单聊时,会话 ID 直接使用对方的用户 ID。
  • 在群组、聊天室、超级群中,为对应的群组、聊天室、超级群 ID。
  • 系统会话中,为开发者指定的系统账号 ID。
unreadMessageCountstring会话中未读消息数。
isTopboolean会话是否置顶。
lastReceivedTimenumber会话中最后一条消息的接收时间。
1. 返回值为 Unix 时间戳,单位毫秒。
2. 接收时间为消息到达接收端时客户端的本地时间。
lastSentTimenumber会话中最后一条消息的发送时间,为 Unix 时间戳,单位毫秒。
1. 当会话里最后一条消息为发送成功或者接收到的消息时,返回该消息到达融云服务器的时间。
2. 当会话里最后一条消息为发送失败的消息时,返回此条消息的本地发送时间。
3. 当会话有草稿信息,且草稿保存时间大于最后一条消息时间时,返回草稿保存时间。
lastOperateTimenumber会话的操作时间(Unix时间戳、毫秒),用于分页获取会话列表时传入的时间戳。
1. 返回值为 Unix 时间戳,单位毫秒。
2. 初始值与 sentTime 相同,置顶、秒打扰操作会更新此时间戳
objectNamestring会话中最后一条消息的类型名,与消息内容体对应。预定义消息类型的 objectName 参见消息类型概述。自定义消息类型的 objectName 为您自行指定的值。
contentMessageContent会话中在客户端本地存储的最后一条消息的消息内容。关于消息的存储属性请参考 消息介绍 中关于 MessageTag 的说明。
senderIdstring会话中最后一条消息发送者 ID。
draftstring会话里保存的草稿信息,参考草稿详细说明
notificationLevelPushNotificationLevel会话免打扰级别,详见免打扰功能概述
unreadMentionedCountnumber本会话里自己被 @ 的消息数量。