说明
基于okhttp的okhttp_3.14.x分支
源码分析
模块设计
- 标准的面对接口编程的套路,对外暴露接口,隐藏内部具体实现
- 采用Listener的方式,反馈自己的内部状态到外部系统/组件/使用者等
各类职责
类 | 职责 |
---|---|
RealWebSocket | 领域业务类:负责数据发送、接收流程跳转、状态的维护,心跳的实现等 |
WebSocketProtocol | 协议类,协议常量的定义,相关的工具方法 |
WebSocketReader | 工具类:每帧数据的读取,包括控制帧与数据读,提供一同类型帧的回调,工具类 |
WebSocketWriter | 工具类:写数据帧 |
RealWebSocket的线程模型
RealWebSocket的内部
WebSocketProtocol的内部
WebSocketReader的内部
WebSocketWriter的内部
借鉴之处
- 模块内部的实现,具体实现类都是final类,防止外部继承实现类,改变内部实现
- 模块视业务逻辑切换来辅助类,避免内部功能实现类代码量行数过多
- 规范/协议类尽量使用静态功能类来实现相关的功能逻辑