Ejemplo n.º 1
0
 /// <summary>
 /// Connect network
 /// </summary>
 public virtual void OnConnected()
 {
     sessionID    = ServerRoot.Instance.GetSessionID();
     ReceiveState = new ReceiveState();
     SendState    = new SendState();
     SendState.Reset();
     ReceiveState.PrepareForPacketHeader(5);
     LastPingTime = NetSvc.GetTimeStamp();
     KDCommon.Log("SessionID:" + sessionID + " Client Connect");
 }
Ejemplo n.º 2
0
    private void CheckOnline(int n)
    {
        long timeNow = NetSvc.GetTimeStamp();

        foreach (var item in onLineSessionDic)
        {
            if (timeNow - item.Key.LastPingTime > m_PingInterval * 1.5f)
            {
                timeOutSessions.Add(item.Key);
            }
        }
        foreach (var item in timeOutSessions)
        {
            NetSvc.Instance.CloseClient(item);
            Console.WriteLine("当前在线人数:" + onLineSessionDic.Count);
        }
        timeOutSessions.Clear();
    }