### 离线与在线的会话列表场景设计
用户行为
在对话框时
进入对话框时
进入会话列表时
删除会话时
本地系统主动行为
主动拉取离线消息或会话
上报到服务端变更会话为已读
更新本地未读数 或删除会话
更新服务端未读数 或删除服务端会话
写入本地消息或更新会话
本地系统状态
有网/再次联网
无网/失败
本地系统数据存储
【增加或减少】本地未读数值字段
记录网络离线的事务数据
对话消息存储
用户会话存储
本地系统数据状态
更新会话状态【删除状态或可用状态】
同步本地事务数据中的状态到到服务端
更新对话消息【已读、未读】状态
本地系统被动行为
服务端推送会话/消息
基本业务规则和描述
1.数据表-会话表中 必须包含 会话状态与会话未读数字段
2.在无网络时的删除会话或已读状态需要记录到本地事务表中进行【不存在】新增或【存在】更新【未同步】的事务(主要依赖场景和参数是否一致决定时存在更新还是不存在新增) 在有网络时进行同步 成功可考虑删除本地事务 也是为了减少接口请求
3.本地事务表至少包含【请求状态(已同步、未同步)、接口行为(同步上传、下载同步)、请求参数、场景(会话删除同步上传、会话已读同步上传)用于区分调用接口】
4.可能涉及到设备的网络监听或获取网络状态
5.前端未读数量 仅依赖本地计算即可 无需从服务器同步未读数量字段,特殊情况需要拉取未读数量页时必须先本地事务上报后再获取才能准确
6.同步删除会话或更新未读消息到服务端时需要携带会话最后一次时间
欢迎留言一起交流。