teamtalk随笔(二)

由于前段时间一直忙于公司项目没有时间看,今天看到一篇文章(ios AFNetworking 3.0 原码阅读分析 (二)(AFURLResponseSerialization模块) - chenxianming - 博客园)

又回来看teamtalk,对其又有了较清晰的认识,个人见解,有错误的地方希望大家可以指出,共同学习.下面开始,

从登录开始 MTTLoginViewController 文件中 

图1 登录

首先对 DDHttpServer,DDMsgServer,DDTcpServer,三个服务器类进行初始化

图2

接着进行http请求

图3
图3

其中SERVER_ADDR 是类似 @"http://12.115.120.115:8080/msg_server" 的形式的url,请求成功后会返回形如 下图的形式 图 4

图4

然后下面进行socket链接

                                        图5

其内部对原生的socket进行的封装,并注册几个通知 DDNotificationTcpLinkDisconnect 连接失败通知,DDNotificationTcpLinkConnectComplete,连接成功通知

,在此说一下几个类与协议,DDSuperAPI,DDAPIScheduleProtocol,DDAPISchedule,DDTcpClientManager,

DDSuperAPI是一个超级类,对其子类提供了一个方法,和一个用于返回请求数据的block 

图6

在方法中定义了一个 自增常量theSeqNo用于标识每次链接,

图7

在图7 中 记录下来completion,下来以登录这一行为分析一下程序的流程


图8
图9

下面进入上面的图 7 运行到打包时,跳转到loginAPI.m文件下进行打包

图10

然后回到图7 进行发送数据

图11

进入socket代理方法中接受数据


图12

在此穿插一个点 ,程序启动就创建DDClientStateMaintenanceManager类

图12-2

类初始化时就添加心跳观察者

图12-3


图12-4

进行重连 -连接

图12-5

来到 DDAPISchedule方法中获取数据

图13

从图13中数据解析来到下图,图14,解析完成后再回到图13

图14

登录成功并返回数据

图15

下面从数据库中加载好友列表

图16

DDClientStateMaintenanceManager

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,705评论 25 709
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,957评论 0 15
  • 很久都没有碰上这种尴尬的事,满脸的笑容迎上去想打招呼,换来的却是他的忽视。人家压根就当你是透明的,然而却转身对你身...
    Vicky霞阅读 969评论 0 0
  • 影响性能的点:主线程上绘制时干了别的事情异步线程有复杂的计算,计算时间长的话会显示空白,影响用户体验减少对象的创建...
    Anchoriter阅读 563评论 0 51
  • 月儿弯弯照九州,几家欢乐几家愁。 年年见人间聚散离分,月盈月亏,谁知有情无情?然而生活总是要继续,睁开眼醒来,必是...
    籽盐阅读 397评论 0 1