zoukankan      html  css  js  c++  java
  • TT流程随笔

    细节:

     

      如果本地可以自动登录, 先实现本地登录,发送事件通知,再请求登录服务器

     

      如果本地不可以登录(第一次或退出后),直接请求登录服务器

     

      登录服务器返回消息服务器ip port / 文件服务器

     

      链接消息服务器(socketThread 通过netty)

     

      链接成功或失败都发送事件通知 (可能是在loginactivity  处理,也可能在chatfragment处理,你懂滴)

     

     链接失败弹出界面提示

     

     链接成功 请求登录消息服务器(发送用户名 密码 etc)并且同时开启 回掉监听队列计时器(这个稍后再细看吧~)

     

     登录消息服务器成功或失败都通过回掉 (回掉函数存储在packetlistner 中)处理

     

     登录消息服务器失败 发送总线事件,也可能在两个位置处理(loginactvity/chatfragment ,你懂得~) 

     

    消息服务器登录成功,并解析返回的登录信息,发送登录成功的事件总线,事件的订阅者分为service 和 activity ,activity 中的事件负责ui的更新处理,service中事件处理,消息的进一步获取 ,与服务器打交道

     

    判断登录的类型(普通登录和本地登录成功后的消息服务器登录)

     

    service 收到登录成功(此指在线登录成功,本地登录成功也是一个道理,发送事件更新界面ui和在service中事件触发进一步的消息获取(获取本地库))的事件通知(按登录类型有所不同 ,大体一致)后,做如下工作:

     

    1.保存本次的登录标示到xml

    2.初始化数据库(创建或获取当前用户所在数据库统一操作接口单例)

    3.请求联系列表

    4.请求群组列表

    5.请求最近会话列表

    6.请求未读消息列表(只是在线登录状态)

    7.重连管理类的相关设置(广播的注册等)

     

    接下来就是对服务端发送消息过来的分析

     

    1.服务端发送消息过来有回调的采用回掉处理

     

    2.服务端没有回调的,按照commandid处理

     

    消息的处理都是在相关的管理器类实例内完成

     

    该存库的存库,该更新内存的,更新内存,然后发送事件总线更新ui  或者通知service中的相关订阅者,完成业务逻辑的数据相关处理

  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/qiyongqiang/p/4346105.html
Copyright © 2011-2022 走看看