跳到主要内容

版本:2.X

获取全部会话

获取本地会话列表

Web 没有本地数据库,不提供获取本地会话列表接口。

获取远端会话列表

会话列表生成规则 : 服务端会根据消息来生成初始会话列表, 在收到消息和发送消息之后服务端会更新会话列表。

从远端获取单群聊历史消息是指从融云服务端获取历史消息,该功能要求 App Key 已启用融云提供的单群聊消息云端存储服务。您可以在控制台 IM 服务管理页面为当前使用的 App Key 开启服务。如果使用生产环境的 App Key,请注意仅 IM 旗舰版IM 尊享版可开通该服务。具体功能与费用以融云官方价格说明页面及计费说明文档为准。

API 参考:getConversationList

参数说明

输入参数说明

参数类型必填说明最低版本
callbackObject回调对象2.2.0
callback.onSuccessFunction成功回调2.2.0
callback.onErrorFunction失败回调2.2.0
conversationTypesArray获取的会话类型, 获取所有会话类型传 null2.3.3
countNumber获取会话数量2.3.3

conversationTypes 枚举值说明

会话类型说明枚举值
RongIMLib.ConversationType.PRIVATE单聊1
RongIMLib.ConversationType.GROUP群聊3
RongIMLib.ConversationType.CHATROOM聊天室4
RongIMLib.ConversationType.SYSTEM系统6

回调参数说明

onSuccess 说明:

回调参数类型说明
listArray会话列表,会话参数说明请参照 conversation 属性说明

conversation 属性说明:

字段名类型说明
conversationTypeNumber会话类型
targetIdString系统会话 ID
latestMessageIdString会话中最后一条消息 ID
objectNameString会话中最后一条消息的消息标识, 融云内置消息以 "RC:" 开头
unreadMessageCountNumber当前会话的未读消息数
latestMessageObject会话中最后一条消息
sentStatusNumber会话中最后一条消息发送状态
sentTimeNumber会话中最后一条消息融云服务端的发送时间
isTopBoolean会话置顶状态
notificationStatusNumber会话免打扰状态

代码示例

var count = 150;
var callback = {
onSuccess: function(list) {
console.log('获取会话列表成功', list);
},
onError: function(error) {
console.log('获取会话列表失败', error);
}
}
RongIMClient.getInstance().getConversationList(callback, null, count);
危险

返回的会话列表 list 长度是在传递的 count 基础上进一步筛选 conversationTypes 的结果,数量会小于等于 count。

常见问题

Q1: 切换用户后获取会话列表,会获取到不属于当前用户的会话
A1: 解决方案
在退出之前先清除掉缓存在调用 logout
RongIMClient.getInstance().clearCache();
RongIMClient.getInstance().logout();

Q2: 会话列表的名字和头像怎么维护
A2: 解决方案
1、用户信息在您的服务器维护,例如:用户 Id、头像、名称等
2、通过会话列表中的 targetId、senderUserId 在您应用服务器获取用户信息
3、使用用户信息与会话列表通过 targetId、senderUserId 做为对应关系将数据合并
4、将列表渲染至页面
说明:
targetId: 接收方用户或群组 ID
senderUserId: 消息发送人 ID