コード例 #1
0
ファイル: BaseController.cs プロジェクト: duuzi/LiveHub
        protected AccountViewModel GetLoginUser()
        {
            if (LoginUser == null)
            {
                var jwtStr = Request.Headers["Authorization"].ToString();
                jwtStr = jwtStr.Substring(7);
                var loginModel = JwtHelper.SerializeJwt(jwtStr);

                // 1. 先从缓存中获取数据
                var accountViewModelStr = _distributeCache.Get("AppAccount" + loginModel.Uid);
                if (accountViewModelStr != null)
                {
                    LoginUser = SerializeHelper.ByteArrayToObject <AccountViewModel>(accountViewModelStr);
                }

                //string account = HttpContext.Session.GetString("Account");
                //byte[] accountBytes = HttpContext.Session.Get("Account");

                // 2. 缓存失效时,从数据库查询数据
                //if (accountBytes == null || accountBytes.Length == 0)
                //if (string.IsNullOrEmpty(account))
                if (LoginUser == null)
                {
                    var user = _context.Account.FirstOrDefault(_ => _.Id.ToString() == loginModel.Uid);
                    LoginUser = _mapper.Map <AccountViewModel>(user);
                }
                else
                {
                    var user = _context.Account.FirstOrDefault(_ => _.Id.ToString() == loginModel.Uid);
                    LoginUser = _mapper.Map <AccountViewModel>(user);
                }

                //else
                //{
                //LoginUser = JsonHelper.ParseFormByJson<AccountViewModel>(account);
                //LoginUser = SerializeHelper.ByteArrayToObject<AccountViewModel>(accountBytes);
                //}
            }
            return(LoginUser);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: JueZ/ITP
        public static void ReceivedData(object peer)
        {
            NetIncomingMessage im;

            while ((im = netclient.ReadMessage()) != null)
            {
                switch (im.MessageType)
                {
                case NetIncomingMessageType.DebugMessage:
                case NetIncomingMessageType.ErrorMessage:
                case NetIncomingMessageType.WarningMessage:
                case NetIncomingMessageType.VerboseDebugMessage:
                case NetIncomingMessageType.StatusChanged:
                    break;

                case NetIncomingMessageType.Data:
                    int    gamedatalength = im.ReadInt32();
                    byte[] gamedata       = im.ReadBytes(gamedatalength);

                    game = (Game)SerializeHelper.ByteArrayToObject(gamedata);
                    game.LocalPlayerGuid = Program.guid;

                    if (game.getPlayerLength(game.LocalPlayerGuid) > 0)
                    {
                        length = game.getPlayerLength(game.LocalPlayerGuid);
                    }

                    checkForCollision();

                    break;

                default:
//						Output("Unhandled type: " + im.MessageType + " " + im.LengthBytes + " bytes");
                    break;
                }
                netclient.Recycle(im);
            }
        }