Server类,管理整个服务器,创建两个TcpServer,一个内部一个外部,接收新连接,接收数据
启动函数
1.创建内部TcpServer int_server,同时绑定onConnection、onMessage 2.创建外部TcpServer ext_server,同时绑定onConnection、onMessage 3.构建终端处理器(运行时接收外部命令)
新连接处理
1.总的连接数加1 2.创建上下文context对象 conn_ctx(外部连接)或session_ctx(内部连接) 3.把全部context对象放到base_ctxs_,外部连接单独放到server_conns_ 4.context初始化
接收数据
1.conn找到对应的context 2.送入数据
创建新连接对应context
1.根据连接类型创建conn_ctx或session_ctx 2.连接初始化分配cid
获取新的连接ID号
1.从map中找到最新ID
根据connid获取对应的context
把新的连接放入到系统容器中
1.所有连接放入base_ctxs_ 2.内部连接放入server_conns_
把已关闭连接从系统容器中移除
30s一次遍历,将已失效连接关闭