Esempio n. 1
0
        public async Task Invoke(HttpContext context)
        {
            bool IsAvailable = context.Session.IsAvailable;

            // await context.Response.WriteAsync("==========================IsAvailable===========" + IsAvailable);
            string sessionid = context.Session.Id;
            Help   help      = new Help(_httpcontext);

            if (help.GetCookies(key).Length == 0)
            {
                help.SetCookies(key, help.GenerateSid());
                if (_client.Get(key) == null)
                {
                    OnlineUser online = new OnlineUser {
                        OnlineTime = DateTime.Now, NickName = "游客"
                    };
                    _client.Set(key, JsonConvert.SerializeObject(online), TimeSpan.FromMinutes(1));
                }
                else
                {
                    OnlineUser online = JsonConvert.DeserializeObject <OnlineUser>(_client.Get(key));
                    if (online != null)
                    {
                        DateTime now  = DateTime.Now;      //9:05
                        DateTime time = online.OnlineTime; //8:59
                        _client.Set(key, JsonConvert.SerializeObject(now), TimeSpan.FromMinutes(1));
                    }
                }
            }
            ;
            string sid = help.GetCookies(key);

            if (await _onlineUsers.GetOnlineusersBySid(sid))
            {
                await _onlineUsers.AddOnlineUser(new bma_onlineusers
                {
                    sid      = sid,
                    nickname = "游客",
                    ip       = context.Connection.LocalIpAddress.ToString()
                });
            }

            await Task.Run(() => { });

            await _next(context);
        }