目录
一、目的
对所有模块的整合,通过Tcpserver模块实例化的对象,可以完成一个非常简单的服务器的搭建
二、管理
1、Accptor对象,创建一个监听套接字
2、EventLoop对象,baseloop对象,实现对监听套接字的事件监听
3、std::unordered_map<uint64_t, PtrConnection> _conns
4、LoopThreadPool 对象,创建loop线程池,对新链接的管理
三、功能
1、设置从属线程池的而数量
2、启动服务器
3、设置各种回调函数(链接建立成功消息,关闭 、任意)用户设置给TcpServer,TcpServer设置给获取的新连接
4、是否启动非活跃连接的销毁功能
5、添加定时任务功能
四、流程
1、TcpServer中实例化一个Accptor对象,以及一个EventLoop对象(baseloop)
2、Accptor对象挂到baseloop进行时间监控
3、一旦Accptor对象就绪了可读事件,则执行读事件回调获取新的链接
4、对新连接创建一个Connection进行管理
5、对连接对应Conntion设置功能回调(链接完成回调,消息回调,关闭回调,任意事件回调)
6、启动Connection非活跃链接的超时销毁规则
7、对新链接对应的Connection挂到LoopThreadPool中,从属线程的EventLoop中进行事件监控
8、一旦Connection对应的链接就绪了可读事件,则这时候之心读事件回调函数,读取数据,读取完毕调用TcpServer设置信息回调
五、成员变量
一个自动增长的链接 int _next_id
非活跃链接的统计事件 int _timeout
监听套接字的管理对象 Acceptor _acceptor
主线程的EventLoop对象,负责监听事件处理 EventLoop
这是EventLoop线程池 LoopThreadpool _pool
保存所有链接对应的Shared_ptr std::unordered_map<uint64_t, PtrConnection> _conns;
四个回调函数

五、成员函数
构造函数

设置 _acceptor的回调函数,设置可读状态

设置线程数目

设置四个回调函数

启动非活跃链接销毁
添加定时任务
因为要在该线程中所以加入队列


从管理Connetion中的_conns中移除链接信息


启动服务器

测试
