• Stars
    star
    173
  • Rank 220,124 (Top 5 %)
  • Language
    Objective-C
  • Created over 8 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

我在工作中用GCDAsyncSocket封装的一套TCP网络服务框架,用在公司产品上

AsyncSocket

我在工作中用GCDAsyncSocket封装的一套TCP网络服务框架,用在公司的股票产品上

股票场景有实时性,所以通讯协议必须走socket,股票数据量大,传输协议用谷歌的ProtoBuffer,序列化速度快,数据压缩比高,省流量

因为是公司的产品用的,我删掉了相关的账号和公司内部的ip,所以能看到程序实现思路,而不能运行了

文件说明

ViewController.h 测试的界面

TCPAPI.h 这个类负责tcp请求封装,心跳机制,tcp打包拆包,自动重登录,数据序列化

SocketManager.h 这个类负责socket状态管理,掉线重连

SpeedDectectManager.h 这个类负责客户端的负载均衡,测速服务

NetWorkManager.h 判断网络状态

我把有状态的socket封装成了对应用层来说是无状态的,就像使用HTTP请求那样简单,它能够处理自动重连,自动TCP层的重登录,自动测速和负载均衡,包括一些缓存,能适应网络频繁断开连上的情况,具体细节写在注释中了,有兴趣的可以看看

整个TCP网络服务层逻辑,图片可能太小,建议从代码库中下载到本地查看

如果您发现程序有问题,欢迎反馈,谢谢,我的QQ:657668857,或者邮箱[email protected]