示例#1
0
        public bool Logout(string token)
        {
            if (RSAProvider.LoadRSA(token))
            {
                try
                {
                    string userName = ClientManager.GetClientUserName(token);
                    PlayerController.Instance.LogoutPlayer(userName);
                    RSAProvider.RemoveRSA(token);
                    ClientManager.RemoveClient(token);
                    lock (this._callbackDicLocker)
                    {
                        this._callbackDic.Remove(token);
                    }
                    if (!string.IsNullOrEmpty(token))
                    {
                        new Thread(new ParameterizedThreadStart(o =>
                        {
                            this.LogedOut(o.ToString());
                        })).Start(token);
                    }

                    LogHelper.Instance.AddInfoLog("玩家 [" + userName + "] 退出矿场, IP=" + ClientManager.GetClientIP(token));

                    return(true);
                }
                catch (Exception exc)
                {
                    LogHelper.Instance.AddErrorLog("Logout Error", exc);
                    return(false);
                }
            }
            else
            {
                throw new Exception();
            }
        }