美文网首页
teamtalk随笔(二)

teamtalk随笔(二)

作者: 爱睡觉的魚 | 来源:发表于2016-08-25 19:44 被阅读78次

    由于前段时间一直忙于公司项目没有时间看,今天看到一篇文章(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

    相关文章

      网友评论

          本文标题: teamtalk随笔(二)

          本文链接:https://www.haomeiwen.com/subject/yysasttx.html