查询和监听最新会话 - GoEasy IM

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

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

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

获取最新会话列表

可以获取最新的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"
            //                     }
            //                 }
            //             }
            //         ]
            //     }
            // };
        },
        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"
            //                  }
            //              }
            //          }
            //      ]
            //  }
    };

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

results matching ""

    No results matching ""