using Common.DbExtends.Extends; using Common.Models.UnqTables; using Common.Utils; using Server.MyClass.Class; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Server.Timers { internal class SessionTimer : MyTimer { //public SessionTimer(Client Client) //{ // this.Client = Client; //} Client Client = Client.SingleClient; protected override void Run(object state, bool timedOut) { try { //更新客户端及超时消息 var List1 = Client.OnlineDevices.Where(f => f.Value.ReadTime < DateTime.Now.AddMinutes(-10)).ToList(); if (List1.Count > 0) { foreach (var item in List1) { Client.OnlineDevices.TryRemove(item.Key,out _); } } var time = DateTime.Now.AddMinutes(-10); var timeOutReplyMessage = Client.ReplyMessages.Where(f=>f.Value.CreateTime f.Value.RequestTime < DateTime.Now.AddHours(-3)).ToList(); if (list2.Count > 0) { foreach (var item in list2) { Client.OnlineUsers.TryRemove(item.Key, out _); } } } catch (Exception ex) { Client.Db.OnLog("Session更新",ex); } } } }