QQ架构分析
产品定位
漂字4声组词定位移动社交,并将娱乐与⽣活服务相结合.
整体架构模块分析
QQ主要分为登录注册,消息,聊天,联系⼈,动态,侧边栏,设置等⼏⼤模块.其中消息模块和聊天模块是核⼼模块.好友动态及联系⼈属于次核⼼模块,延续了PC端的界⾯结构.
整体模块结构如下图所⽰:
整体通过模块化设计,数据和UI分离.包含消息,聊天等主要聊天功能的接⼝封装为独⽴Target.
通过长连接的⽅式,当有消息进来或发送消息的时候,进⾏相应UI更新.
为增强⽤户体验,消息,聊天,联系⼈,动态,侧边栏等都采⽤Native的开发⽅式,结合热更新技术对UI进⾏动态调整.
游戏,会员,装扮等个性化内容由于变幻多样,⽆法使⽤Native的⽅式"⼀劳永逸",故采⽤的是H5的⽅式.⼀般H5页⾯会牺牲部分⽤户体验,但QQ通过其强⼤的服务端⽀持,H5页⾯也能达到原⽣的流畅效果.
核⼼模块分析
湿气太重吃什么登录注册以及主界⾯消息模块
登录问题需要考虑到以下⼏点:
苏轼生平1. 被迫下线问题:如果在线状态下,其他设备登录,会及时发送当前设备下线通知,界⾯通过UIWindow展⽰通知Alert,不允许⽤户进⾏⾮登录操作. 启
火车票预订时间动App时会进⾏免登操作,这时和后台进⾏交互,如果有被挤下线,提⽰登录,否则进⾏免登处理.
2. 是否允许电脑端和⼿机端同时在线问题:后台存储登录当前设备的信息,⽐如设备名称,型号等.如果设置允许电脑⼿机同时在线,后台将对⼿机和电
脑同时提供服务⽀持,被迫下线问题将被区分单独处理.⽽如果不允许同时在线,那么被迫下线问题会把电脑,⼿机视为⼀体混同处理.
消息模块
消息模块的消息类型繁多复杂.
消息类型包括普通消息,消息和系统消息.普通消息仅处理⼀对⼀聊天的情况,消息处理聊天情形.系统消息则根据⽤户⾃定义进⾏个性化推送.
1. 消息类型处理:
逻辑处理放在后台,客户端只管拉取数据.接⼝给到消息类型,客户端通过多个CellID进⾏不同消息类型处理
健康饮品2. 活动,⽐如抢红包:
后台发送抢红包通知,界⾯通过TabeleHeaderView进⾏活动展⽰,并修改下拉刷新功能,下拉刷新不再对当前消息界⾯进⾏刷新,⽽是对围绕红包弹幕进⾏功能改造.
3. 置顶问题:
QQ的置顶功能是信息存储在本地.将置顶的这⼀条数据保存到数据库,再次请求数据时将数据与数据库的进⾏对⽐,发现相同的就置顶 .这⾥应对数据结构进⾏模型和功能划分,使得置顶逻辑清晰易懂,否则后续涉及到和其他业务逻辑的对撞很容易让代码杂乱⽆章.
聊天模块
⾸先看看聊天中的多种消息类型:
p图背景
具体如下所⽰:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论