LeanCloud获取最近会话列表和获取最后一条聊天记录

  最近公司有项目需要集成IM聊天功能,领导要求用LeanCloud集成,搞不出来就要背包滚蛋啊,没办法只能硬着头皮搞了。
  刚拿到官方提供的demo感觉:嗯,不错。图片语音啥的都有了,但尼玛这还不够啊,还有最近会话列表呢?看看他们的代码,突然发现提供了一个封装好的方法findRecentConversationWithBlock,会是这个吗?
不管了先试试再说。额。。。怎么获取的老是最新的一个呢?查看下代码


我们继续查看这个方法声明在AVIMConversationQuery.h这个文件中,发现会话有三个条件查询

好吧,看来这个方法查询的只是最新的一个会话了,不是我们所需要的,既如此,那我们试试第三个方法吧,看方法名应该可以查询到所有会话的记录。试试,果不其然,重新写个方法

OK,就他了。那我们继续写获取每个会话最后一条聊天记录,不可能我们在循环会话列表中再循环获取每个会话的最后一条聊天记录(不要问我为什么,想不通可以去找警察叔叔),这时我们要判断这个会话最后一次更新时间是否与本地缓存的最后一个聊天记录时间一致,否则才需要更新。(PS:我这里所有数据都放在云端,本地只保存会话列表和最后一条聊天记录信息,受我这种缓存模式限制,所以需要每次都同步一下数据的,不多解释了)
  眼看是不是即将完成最后一步,只需要根据最后一次聊天更新时间来判断是否需要更新该会话最后一条聊天记录时,又出幺蛾子了,官方文档上说好的updatedAt这个时间呢?怎么点不出来啊???!!查找

尼玛,这有个鸡巴,我们最关注的updatedAt竟然没有,好吧,再去查看下官方文档,发现现在的官方文档是2.0版本的,那么这个聊天类库不会是1.X的吧!!!!!肿么办,,,,难道我要跑过去告诉领导,搞不定了,我要背包滚蛋了?????
当然不行,即使滚蛋了也要把这个问题解决这才是程序员之道是不。既然如此,再去研究官方文档,这次发现2.0版本之后,他们把所有的聊天会话其实都存放在_Conversation表中了,那我们把这张表数据读出来岂不是就ok了呀。OK,怎么读数据,研究下LeanCloud的数据存储发现,原来读数据这么简单,那我们还等什么,开始敲吧

测试下是否拿到了所有的数据。哈哈果然。拿到了我们需要的会话列表,那我们再来获取每个会话的最后一条聊天记录吧

代码里用的时候

OK,所有都搞定,整理整理准备砸领导个碧莲去:什么都想搞,坑爹不,非得需要这个最后一次聊天记录,要是不要得省多少事啊,你知道不?你知道不?你知道不?

以上纯属个人观点,言语措辞有些不当请多担待。写此文章只为让有同样需求的童鞋们可以少走一些弯路而已。同时希望LeanCloud的童鞋们可以提供更好的demo供我等屌丝简单的集成,也祝LeanCloud越来越好。谢谢!

时间: 2025-01-04 06:37:16

LeanCloud获取最近会话列表和获取最后一条聊天记录的相关文章

[sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的地方 Rest API的简单应用 rest api方式实现对文档库的管理 通过WebClient模拟post上传文件到服务器 WebHttpRequest在sharepoint文档库中的使用 [sharepoint]Rest api相关知识(转) [sharepoint]根据用户名获取该用户的权限

android SDK manager 无法获取更新版本列表【转载】

http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息:  http://developer.android.com/sdk/installing/installing-adt.html 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/https://dl-ssl.

atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表

atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a-zA-Z]\:[\\a-zA-Z0-9\xB0-\xF7\xa1-\xfe_.~]+ 2 5. 参考 2 1. 放入回收站的原理and info2文件中记录着每个被删除后放入回收站的文件的相应信息,比如驱动器指示器dirve designator ,原删除文件的完整文件名,文

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客 undefined Python多线程抓取代理服务器 | Linux运维笔记 undefined java如果模拟请求重启路由器(网络爬虫常用),还有java如何下载图片 - baidu_nod的专栏 - 博客频道 - CSDN.NET undefined [多线程数据采集]使用Jsoup抓取数据+破解屏蔽ip访问. - MiniBu - 开源中国社区 undefined 单linux服务器同时拨多条AD

获取微信用户列表Openid

/**     * 获取微信用户列表Openid     *      * @param nextOpenid     * @return     */    public static JSONArray getWechatUserOpenIds(String nextOpenid) {        // 获取微信用户openid的json数组        JSONArray openIdArry = null;        // 获取微信的access_token凭证        S

[转] Android SDK manager 无法获取更新版本列表

打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/ https://dl-ssl.google.com/android/eclipse/ 到Android SDK官网下载ADT离线升级包 http://developer.android.com/sdk/installing/installing-ad

利用未公开API获取终端会话闲置时间(Idle Time)和登入时间(Logon Time)

利用未公开API获取终端会话闲置时间(Idle Time)和登入时间(Logon Time)作者:Tuuzed(土仔)   发表于:2008年3月3日23:12:38 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明.http://www.cppblog.com/tuuzed/archive/2008/03/03/43631.html 可能很多人都知道NT系统的query user命令,命令返回“使用者名称 工作阶段名称 识别码 状态 闲置时间 登入时间”.如图

C++获取目录文件列表

获取,指定目录的子文件列表,支持递归获取子目录,支持Win32和类Unix系统. #ifndef _FILE_HELPER_H__ #define _FILE_HELPER_H__ class FileHelper { public: /** @brief 获取指定文件夹内的文件路径列表 @param string basePath 要搜索的目录路径 @param bool searchSubDir 是否递归搜索子目录 @std::vector<std::string > &files

生活贴士接口获取资讯分类列表

健康资讯新闻为广大网民提供医疗卫生行业最新资讯,追踪健康焦点事件,生活贴士接口获取资讯分类列表. 接口名称:生活贴士接口 接口平台:api开放平台 接口地址:http://op.juhe.cn/yi18/news/newsclass 支持格式:json/xml 请求方式:get/post 请求示例:http://op.juhe.cn/yi18/news/newsclass?key=您申请到的appkey 生活贴士接口调用JSON返回示例: { "reason": "成功的返回