GoEasyIM - 会话列表和未读计数

帮助开发者在自己的项目里展示用户最近的会话列表, 显示每个会话的最后一条消息和未读消息数量。

开发者需要通过两个接口协同,才能让会话列表总是保持最新状态:

  1. 获取最新会话列表
  2. 监听会话列表变化

获取最新会话列表

可以获取最新的100条会话。

    var promise = im.latestConversations();

    promise.then(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"
        //                     }
        //                 }
        //             }
        //         ]
        //     }
        // };
    }).catch(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"
            //                  }
            //              }
            //          }
            //      ]
            //  }
    };

    //监听会话列表更新
    im.on(GoEasyIM.EVENT.CONVERSATIONS_UPDATED, onConversationsUpdated);

results matching ""

    No results matching ""