链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

RHSocketKit-实用的socket网络通信框架

RHSocketKit是一个socket网络通信框架。由于现有成熟框架CocoaAsyncSocket在tcp模块公用性方面存在不足,RHSocketKit对tcp模块相关内容拆分实现。它功能多样,包括TCP缓存拼包、多种编码解码支持、数据包内存级缓存、心跳设置、自动重连等。框架...

访问官网 →

项目标题:RHSocketKit-一款实用的socket网络通信框架

项目简介

RHSocketKit是一个socket网络通信框架。尽管CocoaAsyncSocket已经比较成熟,但由于项目、业务、协议等因素导致tcp模块公用性低,不能直接拷贝使用,所以该框架对tcp模块相关内容拆分实现。它具有多种功能,如TCP支持缓存拼包功能、支持多种自定义编码解码(默认支持分隔符编解码、可变长度编解码、protobuf基础通信编解码等),还支持发送数据包内存级缓存、心跳设置、TCP自动重连等。

核心技术

框架的设计运用了一些设计模式,通过组合和协议编程,具备灵活多变、扩展方便的特性。其核心在core目录中,主要组件有connection,channel,packet,codec,exception,utils等,其中codec的实现是业务重点。例如RHSocketConnection只负责socket网络连接通信,内部使用GCDAsyncSocket并只公开主要方法增加便捷性且便于后续更新调整;RHSocketChannel在其基础上做封装,负责对socket中的二进制通讯数据做缓存、粘包,内部需要编码、解码处理。

实践案例

工程中有Demo迁移情况,Example工程较久未维护计划废弃,目前代码迁移到Pipeline工程中,想要学习了解可直接运行Pipeline工程(进入Pipeline目录,执行pod install命令)。另外有数据测试demo,可在app内闭环数据测试逻辑,包括不同的编码器、解码器逻辑。同时还有基于本框架的RHMQTTKit可供参考。

项目总结

RHSocketKit是一款功能丰富、设计合理的socket网络通信框架,在网络通信方面有着诸多优势和实用功能。不过也存在一些如数据缓存过大控制、缺少被集成数据统计逻辑等问题有待改进。欢迎大家在留言区对这个项目进行讨论分享你的见解。

项目地址

GitHub链接直达