最近在用WebSocket来写一套即时聊天的框架。服务器端用Workerman,iOS端用SocketRocket。
在处理会话列表,显示会话信息的逻辑关系时,有些地方不太清晰,所以拿微信环信作为参考
在这里记录下:
1.微信的会话只会保存在客户端,服务器端是没有保存的。
只要从客户端删除了会话,这个会话的里面的消息就会全部清空。
下面就是研究微信会话的储存逻辑了..
- 微信每次关掉重开,会话至少会将里面的前11条数据从数据库拉出来,
- 然后如果11条开始再往上如果是同一分钟的聊天,会继续返回,最多会返回15条,就算第16条跟11-15条的时间是同一分钟也不会返回,需要上拉刷新
- 最后我试过,打开会话,然后飞机模式,是可以继续上拉刷新,证明是本地数据库拉出来的!
- 而环信demo中就是直接写死返回最新的10条数据了