1. 区分单聊和群聊
逻辑分析
具体实现逻辑
- 主窗口完善判断单聊还是群聊的逻辑
- 单聊会话详情入口中,设置头像和昵称
2. 删除好友
直接找到删除好友的按钮,然后实现其删除逻辑即可
具体实现
无法删除好友BUG处理
问题复现,点击好友删除后,请求和响应日志都正常打印,但是界面中的好友没有删除
- 判断核心数据类中移除好友操作(添加日志进行判断)
- 打印日志后,发现问题不在于此,进一步检查主窗口发送删除好友信号ID是否错误
- 总结问题:删除好友的时候,并没有将要删除好友的ID发送过去,从而导致的错误,修改该处逻辑后测试
3. 选择好友窗口
3.1 加载会话列表
加载好友列表实现
- 选择好友窗口进行初始化操作
- 其中如果是点击聊天的用户,应该自动加载到会话列表中
3.2 完成和取消逻辑实现
实现分析
该处创建和取消逻辑的实现,也是涉及到前后端交互,客户端发起请求,然后服务器响应,客户端解析响应,主界面通过槽函数对信号做出反应
具体实现
- 客户端通过netclient开始发送网络请求
- 服务端注册路由、解析请求、构建响应
- 客户端出现响应,然后发送信号让界面进行处理
3.3 推送群聊会话创建数据
主要逻辑即是通过服务器发送响应,客户端处理该响应,最后通过信号槽机制让主界面更新即可
具体实现
- 服务端点击按钮发送信号
- 服务端对该信号通过槽函数的方式进行处理
- 客户端处理响应,并通知主界面对其更新
4. 群聊会话详情-加载成员列表
具体实现
- 通过dataCenter获取群聊好友列表
- 客户端向服务端发送请求
- 服务端设置路由,并处理客户端发来的请求
- 客户端处理响应,首先重新设置好友列表、然后发给信号让好友显示窗口更新
- 界面更新逻辑
5. 搜索用户窗口
功能1:点击搜索框显示好友结果
- 通过搜索框点击触发信号槽机制
- 客户端开始向服务端发起请求
- 服务端开始处理请求(设置路由,构建响应)
- 客户端处理服务端发送过来的响应
- 点击按钮处的槽函数进行处理
功能2:添加好友列表的实现
6. 历史消息窗口
功能1:根据关键词搜索历史消息
- 客户端判断是否为关键词搜索逻辑
- 客户端向服务端发起获取历史消息列表的请求
- 服务端处理客户端发送的获取历史消息请求
- 此处因为构建了多种类型的消息,所以最后日志才会打印多种类型消息
- 客户端处理响应
- 将获取到的历史消息存到dataCenter中
- 通知页面对获取到的历史消息进行更新
功能2:根据时间段搜索历史消息内容
- 客户端发送请求,获取特定时间段的内容
- 服务端处理请求
- 设置路由,然后构建响应返回给客户端
- 客户端处理响应
- 客户端处理信号的位置,两个功能是通过同一个槽函数,此处省略