离线消息同步
2024-06-06 16:32:15 3 举报
聊天消息同步
作者其他创作
大纲/内容
同步会话增量消息
调用增量@接口入参从增量记录表获取
是否有数据
有
单线程依次同步数据2消息
异步执行右边流程
场景:点击进入某个会话
请求秘钥并保存
无
保存到群聊未读消息表
更新会话记录表指定字段
结束
是否有数据?
子流程4:同步会话增量消息
将数据分为2组
同步增量群聊未读at消息子流程2
此接口关键字段:1.groupId 会话id2.createTime 消息时间
子流程1:同步增量会话
更新会话记录表以下字段at_all :是否@所有人at_me:是否@我last_at_all_msg_time:最后一条@所有人消息时间last_at_me_msg_time:最后一条@我消息时间
展示loading状态
并发调用以下接口:1.增量入群时间及附带消息2.增量撤回或删除消息
调用增量会话接口,入参从增量记录表取
标记会话已同步
是
是否有未读at消息 判断条件查询最后一条at我的消息: 消息.updateTime > 会话.lastReadMsgStr && 消息.read == 0 && 消息.atType == 1查找最后一条at所有人消息:消息.updateTime > 会话.lastReadMsgStr && 消息.read == 0 && 消息.atType == 0
1.更新未读数字段2.更新同步字段, 标记为未同步
处理已被踢出群或群解散的会话
保存数据到会话表
点击会话
否
取数据
从接口返回数据中取最大updateTime字段,更新增量记录表
过滤出deleted==1的数据从会话表删除
刷新会话列表UI
是否有未读at消息
子流程2:增量群聊未读at消息
建立长链接并登录成功
本地是否有秘钥?
同步增量群聊已读at消息子流程3
数据1:最后消息时间大于2天前时间的会话,走接口同步数据2:最后消息时间小于2天前时间的会话,走离线包同步
value根据时间排序
多线程批量同步数据1消息
会话表条件查询
会话同步流程子流程1
查询条件:消息时间>三个月前时间戳 && sync==1
是否需要同步
key: 会话idvalue:消息集合
根据groupId查询会话表
同步会话增量消息子流程4
根据时间取最大值,更新增量记录表
将消息按会话id分组进行遍历
先加载本地数据
0 条评论
下一页