基础Context对象,是对TcpConnection的封装 ---- ====== 属性 ====== WeakTcpConnectionPtr weakConn_; packet_parser *parser_; uint32_t cid_; //连接ID int type_; //连接类型conntype EncipherMode has_encipher_; //是否需要加解密 char remote_ip_[32]; //远程IP及端口 uint16_t remote_port_; uint32_t last_pkt_tm_; //收到该连接最后一个包的时间表 uint32_t connect_tm_; //连接建立时间 Server* mgr_; //当前连接的管理器,用于根据connid查找相应的连接 encipher encipher_; //用于加解密,正常只有客户端连接才会使用 MutexLock mutex_encipher_;//因为仅仅发包可能影响到,所以加密的时候加锁就可以了,外部连接也会影响到 uint32_t debug_deleted_; //内存调试机制,删除的时候被置为非0 ====== 方法 ====== ==== base_ctx() ==== 构造方法 1.初始化数据包解析器parser_ ==== ~base_ctx() ==== 析构方法 1.关闭TCP连接 2.释放数据解析器 ==== init(Server* p,const WeakTcpConnectionPtr& weakConn) ==== 初始化方法 * p 服务器对象 * weakConn TCP连接对象 赋值成员变量mgr_、weakConn_ ==== onMessage(Buffer* buf) ==== 当TCPconnect发送给server消息,server会调用此方法 使用解析器解析buf,把buf构造成packet对象,并调用onPacket方法 ==== SendPacket(packet *pkt) ==== 给TcpConnect发送pkt包 1.获取TcpConnectionPtr对象 2.调用send方法,把pkt内对应的二进制发送出去 ==== onPacket(packet* pkt) ==== virtual 需要子类重写 ==== onClosed() ==== virtual 需要子类重写 ==== Close() ==== 关闭连接 调用TcpConnectionPtr的shutdown关闭连接