static void OnAddNetworkConn(Context ctx, object arg) { NetworkTransport conn = (NetworkTransport)ctx.GetSender(); connMap[conn.GetID()] = conn; SessionMgr sessionMgr = conn.GetSessionMgr(); sessionMgr.OnLinkerConneted(conn); conn.ReadMsgPacket(); var timerID = worker.AddTimer(5 * 1000, OnNetworkConnPing, conn); tickTimer[conn.GetID()] = timerID; }
static void OnRemoveNetworkConn(Context ctx, object arg) { NetworkTransport conn = (NetworkTransport)ctx.GetSender(); connMap.Remove(conn.GetID()); SessionMgr sessionMgr = conn.GetSessionMgr(); sessionMgr.OnLinkerClosed(conn); UInt64 timerID = 0; if (tickTimer.TryGetValue(conn.GetID(), out timerID) == true) { worker.RemoveTimer(timerID); } }
static void OnNetworkConnPing(object[] args) { NetworkTransport conn = (NetworkTransport)args[0]; conn.PingPong(); var timerID = worker.AddTimer(5 * 1000, OnNetworkConnPing, conn); tickTimer[conn.GetID()] = timerID; }