/// <summary>检查在线</summary>
        /// <returns></returns>
        protected virtual NodeOnline CreateOnline(String code, INode node)
        {
            var ip   = UserHost;
            var port = HttpContext.Connection.RemotePort;
            var sid  = $"{node.ID}@{ip}:{port}";
            var olt  = NodeOnline.GetOrAdd(sid);

            olt.NodeID     = node.ID;
            olt.Name       = node.Name;
            olt.ProvinceID = node.ProvinceID;
            olt.CityID     = node.CityID;

            olt.Version     = node.Version;
            olt.CompileTime = node.CompileTime;
            olt.Memory      = node.Memory;
            olt.MACs        = node.MACs;
            //olt.COMs = node.COMs;
            olt.Token    = Token;
            olt.CreateIP = ip;

            olt.Creator = Environment.MachineName;

            Session["Online"] = olt;

            return(olt);
        }
Exemple #2
0
        /// <summary>检查在线</summary>
        /// <param name="node"></param>
        /// <returns></returns>
        protected virtual NodeOnline CreateOnline(Node node, String token)
        {
            var sid = $"{node.ID}@{UserHost}";
            var olt = NodeOnline.GetOrAdd(sid);

            olt.NodeID     = node.ID;
            olt.Name       = node.Name;
            olt.IP         = node.IP;
            olt.Category   = node.Category;
            olt.ProvinceID = node.ProvinceID;
            olt.CityID     = node.CityID;

            olt.Version     = node.Version;
            olt.CompileTime = node.CompileTime;
            olt.Memory      = node.Memory;
            olt.MACs        = node.MACs;
            //olt.COMs = node.COMs;
            olt.Token    = token;
            olt.CreateIP = UserHost;

            olt.Creator = Environment.MachineName;

            _cache.Set($"NodeOnline:{sid}", olt, 600);

            return(olt);
        }
 private void Fill(NodeOnline online, NodeInfo di)
 {
     if (di.AvailableMemory > 0)
     {
         online.AvailableMemory = (Int32)(di.AvailableMemory / 1024 / 1024);
     }
     if (di.AvailableFreeSpace > 0)
     {
         online.AvailableFreeSpace = (Int32)(di.AvailableFreeSpace / 1024 / 1024);
     }
 }
Exemple #4
0
        /// <summary></summary>
        /// <param name="node"></param>
        /// <returns></returns>
        protected virtual NodeOnline GetOnline(Node node)
        {
            var sid = $"{node.ID}@{UserHost}";
            var olt = _cache.Get <NodeOnline>($"NodeOnline:{sid}");

            if (olt != null)
            {
                _cache.SetExpire($"NodeOnline:{sid}", TimeSpan.FromSeconds(600));
                return(olt);
            }

            return(NodeOnline.FindBySessionID(sid));
        }
        /// <summary></summary>
        /// <param name="code"></param>
        /// <param name="node"></param>
        /// <returns></returns>
        protected virtual NodeOnline GetOnline(String code, INode node)
        {
            var olt = Session["Online"] as NodeOnline;

            if (olt != null)
            {
                return(olt);
            }

            var ip   = UserHost;
            var port = HttpContext.Connection.RemotePort;
            var sid  = $"{node.ID}@{ip}:{port}";

            return(NodeOnline.FindBySessionID(sid));
        }
Exemple #6
0
        private void Fill(NodeOnline online, NodeInfo di)
        {
            online.LocalTime = di.Time.ToLocalTime();
            online.MACs      = di.Macs;
            //online.COMs = di.COMs;

            if (di.AvailableMemory > 0)
            {
                online.AvailableMemory = (Int32)(di.AvailableMemory / 1024 / 1024);
            }
            if (di.AvailableFreeSpace > 0)
            {
                online.AvailableFreeSpace = (Int32)(di.AvailableFreeSpace / 1024 / 1024);
            }
        }
        /// <summary>填充在线节点信息</summary>
        /// <param name="olt"></param>
        /// <param name="inf"></param>
        private void Fill(NodeOnline olt, PingInfo inf)
        {
            if (inf.AvailableMemory > 0)
            {
                olt.AvailableMemory = (Int32)(inf.AvailableMemory / 1024 / 1024);
            }
            if (inf.AvailableFreeSpace > 0)
            {
                olt.AvailableFreeSpace = (Int32)(inf.AvailableFreeSpace / 1024 / 1024);
            }
            if (inf.CpuRate > 0)
            {
                olt.CpuRate = inf.CpuRate;
            }
            if (inf.Delay > 0)
            {
                olt.Delay = inf.Delay;
            }

            var dt = inf.Time.ToDateTime().ToLocalTime();

            if (dt.Year > 2000)
            {
                olt.LocalTime = dt;
                olt.Offset    = (Int32)Math.Round((dt - DateTime.Now).TotalSeconds);
            }

            if (!inf.Processes.IsNullOrEmpty())
            {
                olt.Processes = inf.Processes;
            }
            if (!inf.Macs.IsNullOrEmpty())
            {
                olt.MACs = inf.Macs;
            }
            //if (!inf.COMs.IsNullOrEmpty()) olt.COMs = inf.COMs;
        }
Exemple #8
0
        /// <summary>填充在线节点信息</summary>
        /// <param name="olt"></param>
        /// <param name="inf"></param>
        private void Fill(NodeOnline olt, PingInfo inf)
        {
            if (inf.AvailableMemory > 0)
            {
                olt.AvailableMemory = (Int32)(inf.AvailableMemory / 1024 / 1024);
            }
            if (inf.AvailableFreeSpace > 0)
            {
                olt.AvailableFreeSpace = (Int32)(inf.AvailableFreeSpace / 1024 / 1024);
            }
            if (inf.CpuRate > 0)
            {
                olt.CpuRate = inf.CpuRate;
            }
            if (inf.Temperature > 0)
            {
                olt.Temperature = inf.Temperature;
            }
            if (inf.Uptime > 0)
            {
                olt.Uptime = inf.Uptime;
            }
            if (inf.Delay > 0)
            {
                olt.Delay = inf.Delay;
            }

            var dt = inf.Time.ToDateTime().ToLocalTime();

            if (dt.Year > 2000)
            {
                olt.LocalTime = dt;
                olt.Offset    = (Int32)Math.Round((dt - DateTime.Now).TotalSeconds);
            }

            if (!inf.Processes.IsNullOrEmpty())
            {
                olt.Processes = inf.Processes;
            }
            if (!inf.Macs.IsNullOrEmpty())
            {
                olt.MACs = inf.Macs;
            }
            //if (!inf.COMs.IsNullOrEmpty()) olt.COMs = inf.COMs;

            // 插入节点数据
            var data = new NodeData
            {
                NodeID             = olt.NodeID,
                AvailableMemory    = olt.AvailableMemory,
                AvailableFreeSpace = olt.AvailableFreeSpace,
                CpuRate            = inf.CpuRate,
                Temperature        = inf.Temperature,
                Uptime             = inf.Uptime,
                Delay     = inf.Delay,
                LocalTime = dt,
                Offset    = olt.Offset
            };

            data.SaveAsync();
        }