- 重构项目
- 完善注释
- 增加服务端监控
- 增加服务端连接限制数
- 优化代码
- 持续完善单元测试
- 支持 tls 加密传输
- 优化性能
- 增加 context 取消的方法
- 增加 client ip 拒绝策略
- 修改协议,去除 version,将 magic/type/body_size 混到一个 int64 中,使用位操作处理数值
- PacketHandler 加入 context 并默认传递一些数据,比如客户端的地址
- 提供一个 context 工具包,获取常用数据
- 给 EventHandler 加入 context 参数,使用 context 传递数据而不是用 source 机制
- 独立 pool 包的 config 结构
- 考虑连接池的拒绝策略必要性,只保留阻塞和失败两种
- 增加连接池 wait get 的请求数量
- 修复性能压测超过 32KB 就出问题的 bug(io.Reader 的 Read 方法不保证读取满 slice 长度,要使用 io.ReadFull 才行)
- 增加关闭服务器超时机制,防止连接过多导致关闭阻塞卡死
- 完善连接池的实现,加入 context 超时(发现在 select 中增加一个 case 会导致性能急剧下降。。。原因是 runtime.selectgo 方法)
- 完善事件通知机制,主要是事件的设计还有携带额外数据的方式
-
给 Server 加入令牌桶模式的连接数控制,完善拒绝策略,增加连接数等 State 数据(v0.4.x 处理) -
给 Server 增加拦截器机制,调用链形式(v0.4.x 处理) -
给 Client 增加拦截器机制,调用链形式(v0.4.x 处理) -
增加连接池事件通知机制,包括创建连接、关闭连接等,考虑一些时间数据也可以记录下?(v0.4.x 处理)
- 完善文档注释
- 完善网络通信协议的设计
- 加入连接池状况查询入口
- 完善连接池的实现,支持基础数量限制
- 考虑将 Client 做成接口
- 加入 Server 的事件回调机制
- 加入 signal 信号监听,引入平滑下线机制
- 给 Client 和 Server 加入 option 机制
- 抽象事件处理器,配置默认事件处理器
- 实现最简单的网络通信功能
- 加入简单的连接池实现