Android开发Android技术知识Android知识

基于【LeanCloud + 融云】的IM聊天应用 v1.0

2017-07-26  本文已影响231人  boredream

项目地址

主项目:https://github.com/boredream/BDChat
依赖主model:https://github.com/boredream/bdcodehelper
服务端代码:https://github.com/boredream/BoreIMCloud

欢迎 Star和Follow~
注意:

项目总结

开发周期:2.5周

7.3 ~ 7.20
(实际开发天数:10 天)

页面:15个

接口:14个

其中云引擎方法5个(服务端需要些代码)

存在的问题


复杂的业务分析

最核心的部分其实是会话列表聊天页面啥的,但是融云已经封装好了,这里本着实用的角度就不重复造轮子了,直接使用~

个人觉得最麻烦的点在于好友关系的处理
就是申请添加、接受、新的好友等相关业务上

好友关系设计

服务端保存一个好友关系FriendRelation表,仨字段,srcUser, targetUser, relation
其中relation字段:

【添加好友流程】
情景一,新的添加

  1. A通过昵称或其他信息搜索到用户B
  2. A调用接口申请添加好友B
  3. 服务端先判断好友关系数据库中AB是否有关系
  4. 如果已经是好友,则返回已添加提示
  5. 如果A曾经向B提交过申请,则返回成功申请提示,但是数据库中不再重复添加好友关系
  6. 如果是B已经向A提交过申请,则直接relation=1双方改为好友
  7. 如果双方没关系,则表中插入一条信息 AUser BUser -1,代表A向B发出了好友申请。同时向B发送一条IM系统消息“xxx申请添加您为好友”

情景二,同意

  1. B收到A的好友申请,在新的好友中显示
  2. 同意添加好友
    服务端接受到B的同意请求后,将A和B的关系修改为好友,即表中的对应数据修改为 AUser BUser 1

【新的好友】
只有两种情况:对方加我了,显示“同意”、同意后显示“已添加”
注意,我申请加别人不在新的好友中显示
所以获取新的好友列表的服务端设计为:


展示页面

登陆.png 会话列表.png 会话页面.png 会话详情.png 发起群聊.png 搜索好友.png 新的朋友.png 详细资料.png 我的.png
上一篇 下一篇

猜你喜欢

热点阅读