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越来越好。谢谢!
LeanCloud获取最近会话列表和获取最后一条聊天记录的更多相关文章
- 阿里云使用js 实现OSS图片上传、获取OSS图片列表、获取图片外网访问地址(读写权限私有、读写权限公共);
详情请参考:https://help.aliyun.com/document_detail/32069.html?spm=a2c4g.11186623.6.763.ZgC59a 或者https://h ...
- iOS6.0下获取通讯录用户列表
自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表.而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddres ...
- 枚举PEB获取进程模块列表
枚举进程模块的方法有很多种,常见的有枚举PEB和内存搜索法,今天,先来看看实现起来最简单的枚举PEB实现获取进程模块列表. 首先,惯例是各种繁琐的结构体定义.需要包含 ntifs.h 和 WinDef ...
- atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表
atitit.) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a- ...
- [转] Android SDK manager 无法获取更新版本列表
打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ss ...
- 微信开发第7章 通过accesstoken获取用户黑名单列表
获取黑名单列表可以查看文档 http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1471422259_pJMWA&token=& ...
- python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客
python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客 undefined Python多线程抓取代理服务器 | Linux运维笔记 undefined java如 ...
- 微信开发第6章 通过accesstoken获取用户粉丝列表
上一章我们讲解到open_id获取用户基本信息,那么open_id哪儿来的呢?就是粉丝列表中可以看到的.本次讲解如何获取粉丝列表. 获取粉丝列表 可以查看文档 http://mp.weixin.qq. ...
- 利用未公开API获取终端会话闲置时间(Idle Time)和登入时间(Logon Time)
利用未公开API获取终端会话闲置时间(Idle Time)和登入时间(Logon Time)作者:Tuuzed(土仔) 发表于:2008年3月3日23:12:38 版权声明:可以任意转载,转载时请 ...
随机推荐
- 在C#中子线程如何操作主窗口线程上的控件
在C#中子线程怎样操作主线程中窗口上控件 在C#中,直接在子线程中对窗口上的控件操作是会出现异常,这是因为子线程和运行窗口的线程是不同的空间,因此想要在子线程来操作窗口上的控件.是不可能简单的通过控件 ...
- hdu5176(并查集)
传送门:The Experience of Love 题意:一个叫Gorwin的女孩和一个叫Vivin的男孩是一对情侣.他们来到一个叫爱情的国家,这个国家由N个城市组成而且只有N−1条小道(像一棵树) ...
- commons.net.telnet使用示例
import org.apache.commons.net.telnet.TelnetClient; import java.io.IOException; public class TelnetDe ...
- Beijing seminar: China shadow banking
Beijing seminar: China shadow banking-张化桥-财新博客-新世纪的常识传播者-财新网 Beijing seminar: China shadow banking
- C++ Primer 学习笔记_79_模板与泛型编程 --模板编译模型
模板与泛型编程 --模板编译模型 引言: 当编译器看到模板定义的时候,它不马上产生代码.仅仅有在用到模板时,假设调用了函数模板或定义了模板的对象的时候,编译器才产生特定类型的模板实例. 一般而言,当调 ...
- QT怎样在QTableWidge显示图片
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">QTableWi ...
- OpenCL 查看设备信息
好久没搞OpenCL了.可是这是个好东西.不能不学,之前发了篇设置OpenCL的文章.看的人还真多,看来大家都知道这个好东西了,都想把OpenCL搞起.只是学习难度还是相当高的. 之前忙搞算法,所以非 ...
- hdu 折线切割平面 (java)
问题: 仅仅要找到规律问题就攻克了,在做题时应该细致去发现数与数之间的联系. 折线切割平面 Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- ubuntu下使用自带的openJDK查看java源码
如题 Ubuntu自带的OpenJDK仅仅有jre环境,不提供源代码,所以我们还是须要去下载. JDK6:http://download.java.net/openjdk/jdk6/ JDK7:htt ...
- 伪教练技术培训之殇-2013年9月江西IDC拓行榜与综述
纠集几个人,然后培训所谓的教练技术培训. 培训的人一期又一期的参与,国学.佛学.超能量,无所不用其极,然后就是疯狂的拿人头,邀请朋友加盟. 有甚者还披上“科技”的外衣,用“水知道答案”这种早被公知指出 ...