帮助开发者在自己的项目里展示用户最近的会话列表, 显示每个会话的最后一条消息和未读消息数量。
开发者需要通过两个接口协同,才能让会话列表总是保持最新状态:
可以获取最新的100条会话。
var im = goeasy.im;
im.latestConversations({
onSuccess: function (result) {
//会话列表结果
// {
// code: 200,
// content: {
// unreadTotal: 15,//未读消息总数
// conversations: [
// {
// type: 'group',
// groupId: 'group001',
//
// //群Data信息,来源于发送群消息时候的to.data
// data: {"avatar": "group-1.png", "name": "区块链交流群"},
// unread: 5, //未读消息条数
// lastMessage: { //最后一条消息
// "type": "text", "timestamp": 1594958217087, "senderId": "3bb179af-bcc5-4fe0-9dac-c05688484649",
//
// //发送方的Data信息,来源于发送方调用im.connect的时候传入的data
// "senderData": {"avatar":"/www/xxx.png","nickname":"Neo"},
// "payload": {"text": "Hello, GoEasyIM"}
// }
// },
// {
// type: 'private', userId: 'user001',
// unread: 10, //未读消息条数
//
// //私聊好友Data信息,来源于发送私聊消息时的to.data和发送方im.connect时传入的data
// data: {"avatar":"/www/xxx.png","nickname":"Neo"},
// lastMessage: {//最后一条消息
// "type": "audio", "timestamp": 1594958490234, "senderId": "fdee46b0-4b01-4590-bdba-6586d7617f95",
//
// //发送方的Data信息,来源于发送方调用im.connect的时候传入的data
// "senderData": {"avatar":"/www/xxx.png","nickname":"Neo"},
// "payload": {
// "name": "20200717120129175.m4a", "contentType": "audio/m4a", "duration": 2.46, "size": 15220,
// "url": "https://goeasy-hangzhou.oss-cn-hangzhou.aliyuncs.com/goeasy-im/20200717120129175.m4a"
// }
// "read":false
// }
// }
// ]
// }
// };
},
onFailed: function (error) { //获取失败
console.log("Failed to get the latest conversations, code:" + error.code + " content:" + error.content);
},
});
每当会话列表发生变化,该监听器都会被触发,并返回最新的会话列表。
var onConversationsUpdated = function(conversations) {
//更新后的最新会话列表
// {
// unreadTotal: 15,//未读消息总数
// conversations: [
// {
// type: 'group',
// groupId: 'group001',
//
// //群Data信息,来源于发送群消息时候的to.data
// data: {"avatar": "group-1.png", "name": "区块链交流群"},
// unread: 5, //未读消息条数
// lastMessage: { //最后一条消息
// "type": "text", "timestamp": 1594958217087, "senderId": "3bb179af-bcc5-4fe0-9dac-c05688484649",
//
// //发送方的Data信息,仅限于群聊会话,来源于发送方调用im.connect的时候传入的data
// "senderData": {"avatar":"/www/xxx.png","nickname":"Neo"},
// "payload": {"text": "Hello, GoEasyIM"}
// }
// },
// {
// type: 'private', userId: 'user001',
// unread: 10, //未读消息条数
//
// //私聊好友Data信息,来源于发送私聊消息时的to.data和发送方im.connect时传入的data
// data: {"avatar":"/www/xxx.png","nickname":"Neo"},
// lastMessage: {//最后一条消息
// "type": "audio", "timestamp": 1594958490234, "senderId": "fdee46b0-4b01-4590-bdba-6586d7617f95",
// "payload": {
// "name": "20200717120129175.m4a", "contentType": "audio/m4a", "duration": 2.46, "size": 15220,
// "url": "https://goeasy-hangzhou.oss-cn-hangzhou.aliyuncs.com/goeasy-im/20200717120129175.m4a"
// }
// "read":true
// }
// }
// ]
// }
};
//监听会话列表更新
im.on(GoEasy.IM_EVENT.CONVERSATIONS_UPDATED, onConversationsUpdated);