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中的相关订阅者,完成业务逻辑的数据相关处理

时间: 2024-10-12 03:57:15

TT流程随笔的相关文章

PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔

http://jbeduhai.iteye.com/blog/338579

第五章 团队和流程随笔

软件团队的模式: 主治医师模式.明星模式.社区模式.业余剧团模式.秘密团队.特工团队.交响乐团模式.爵士乐模式.功能团队模式.官僚模式. 瀑布模型的特点: 强调阶段的顺序性和依赖性,即下一个阶段的开始必须以上一个阶段的完成为前提条件.如在开始设计工作前,必须完成需求分析过程.此外,瀑布模型要求各个阶段必须有相应的文档作为审查的依据. 瀑布模型适用范围: 如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证 产品模块之间的借口.输入和输出能很好的用形式化的方法定义和验证. 使用的技术

第六章 敏捷流程随笔

敏捷开发特点: 根据维基百科上的定义:"(敏捷)更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用." 上述特征并不是仅限于敏捷开发团队.有的时候软件开发项目需要更多的规程,有的时候则相反.但只要遵循敏捷开发最基本的规程,无论是何种软件开发过程,都可以称之为敏捷软件开发过程. 在敏捷方法中,开发人员的主导作用更明显,讨论需求.实现需

u-boot移植随笔(7):u-boot启动流程简图【转】

转自:http://www.latelee.org/porting-uboot/u-boot-porting-bootstrap.html u-boot移植随笔:u-boot启动流程简图 画上面这张图也花了点时间.虽然很简洁,但对于理解u-boot,从一个较高角度府视u-boot,很有帮助.——其实网上有很多分析教程.资料,相信大多都是大同小异的.因此,山人无谓再写一次了. (小技巧: 如何将上面的图占为已有? 木草山人心地善良,好心地将图片的背景做成白色的,最简单的方法是使用windows系统

Haddop随笔(一):工作流程的源码

一.几个可能会用到的属性值 1.mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution 这两个属性可以决定Map任务和Reduce任务是否开启推测式执行策略.推测式执行策略在Hadoop中用来应对执行缓慢的任务所造成的瓶颈,但是对代码缺陷所导致的任务执行过慢,推测执行是一种反向的作用,应当避免,而Hadoop默认是开启推测式执行的. 2.mapred.job.reuse.jvm.num.ta

学习java随笔第五篇:流程控制昨咨爪作阻鬃

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. www.hxtk.com/html

学习java随笔第五篇:流程控制

条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 switch(表达式) { case 表达式1: { 方法体 break; } case 表达式2: { 方法体 break; } default: 方法体 } 循环语句 while循环语句 while(表达式) { 方法体 } do...while循环语句 do { 方法体 } while(表达式)

Abby's 学习php5随笔

2017.6.27 Abby's cakephp2 学习之旅 下载了XAMPP集成开发环境,然后配置其数据库,参考学习教程, 1.建立表单. 配置完信息如下,Cache Apache默认在windows下是system用户,所以权限最高,但xampp集成环境中的apache确是administor 如何更改apache用户为system 静默开发.(一种开发方法,番茄ToDo中的学霸模式有些相似) 如何设置.ctp的显示 http://cakephp2.local/posts/index怎么就可

MapReduce剖析笔记之四:TaskTracker通过心跳机制获取任务的流程

上一节分析到了JobTracker把任务从队列里取出来并进行了初始化,所谓的初始化,主要是获取了Map.Reduce任务的数量,并统计了哪些DataNode所在的服务器可以处理哪些Split等等,将这些信息缓存起来,但还没有进行实质的分配.等待TaskTracker跟自己通信. TaskTracker一般运行于DataNode之上,下面是他的声明,可见,是一个线程类: /******************************************************* * TaskT