项目目的
进一步熟悉linux网络编程,事件循环,http协议
项目功能
- 基于边沿触发、非阻塞、事件循环、reactor模式的多线程服务器。单个accept线程,多个工作线程。
- 工作线程采用线程池设计,通过循环链表实现简单的负载均衡。
- 同步异步的日志系统(基于TinyWebServer)
- JSON配置文件
- http请求报文解析采用GitHub,http请求url的解析采用正则表达式(简单)
- http响应报文的构建
- 采用function去除繁复的继承和重写
待完善部分
- 对于socket的封装,减少代码冗余
- 多种IO模型 阻塞IO 水平触发
- 成员封装不好,单纯为了实现功能,暴露了大量私有成员
- 在事件循环中未设计检查连接生命周期,无法剔除空闲但是未断开的连接
参考资料
《Linux多线程服务端编程(muduo)》
TinyWebServer