コード例 #1
0
ファイル: ManagementServer.cs プロジェクト: liuslayer/RCCP
 private void BroadcastServerUpdate()
 {
     _myNodeStatus = ConvetToMyEntity(m_CurrentNodeStatus);
     var message = string.Format("{0} {1}\r\n", "ManagementServer ", JsonConvert.SerializeObject(_myNodeStatus));
     int i = this.SessionCount;
     //Only push update to loged in sessions
     foreach (var s in this.GetSessions(s => s.Connected))
     {
         s.TrySend(message);
     }
 }
コード例 #2
0
ファイル: ManagementServer.cs プロジェクト: liuslayer/RCCP
        private MyNodeStatus ConvetToMyEntity(NodeStatus m_CurrentNodeStatus)
        {
            MyNodeStatus myNodeStatus = new MyNodeStatus();
            var bootstrapStatus = m_CurrentNodeStatus.BootstrapStatus;
            MyBootstrapStatus myBootstrapStatus = new MyBootstrapStatus();
            myBootstrapStatus.AvailableWorkingThreads = bootstrapStatus.Values["AvailableWorkingThreads"].ToString();
            myBootstrapStatus.AvailableCompletionPortThreads = bootstrapStatus.Values["AvailableCompletionPortThreads"].ToString();
            myBootstrapStatus.MaxCompletionPortThreads = bootstrapStatus.Values["MaxCompletionPortThreads"].ToString();
            myBootstrapStatus.MaxWorkingThreads = bootstrapStatus.Values["MaxWorkingThreads"].ToString();
            myBootstrapStatus.TotalThreadCount = bootstrapStatus.Values["TotalThreadCount"].ToString();
            myBootstrapStatus.CpuUsage = bootstrapStatus.Values["CpuUsage"].ToString();
            myBootstrapStatus.MemoryUsage = bootstrapStatus.Values["MemoryUsage"].ToString();
            myNodeStatus.MyBootstrapStatus = myBootstrapStatus;

            var instancesStatus = m_CurrentNodeStatus.InstancesStatus;
            myNodeStatus.MyInstancesStatus = new List<MyInstancesStatus>();
            foreach (var item in instancesStatus)
            {
                MyInstancesStatus InstancesStatus = new MyInstancesStatus();
                InstancesStatus.CollectedTime = item.CollectedTime.ToString();
                InstancesStatus.Name = item.Name;
                InstancesStatus.Tag = item.Tag;
                InstancesStatus.MaxConnectionNumber = item.Values["MaxConnectionNumber"].ToString();
                ListenerInfo[] ListenerInfos = item.Values["Listeners"] as ListenerInfo[];
                if (ListenerInfos == null || ListenerInfos.Length < 1)
                {
                    InstancesStatus.Listeners = "0.0.0.0";
                }
                else
                {
                    InstancesStatus.Listeners = ListenerInfos[0].EndPoint.ToString();
                }
                InstancesStatus.IsRunning = item.Values["IsRunning"].ToString();
                InstancesStatus.StartedTime = !item.Values.ContainsKey("StartedTime") || item.Values["StartedTime"] == null ? string.Empty : item.Values["StartedTime"].ToString();
                InstancesStatus.TotalConnections = item.Values["TotalConnections"].ToString();
                InstancesStatus.RequestHandlingSpeed = item.Values["RequestHandlingSpeed"].ToString();
                InstancesStatus.TotalHandledRequests = item.Values["TotalHandledRequests"].ToString();
                InstancesStatus.AvialableSendingQueueItems = item.Values["AvialableSendingQueueItems"].ToString();
                InstancesStatus.TotalSendingQueueItems = item.Values["TotalSendingQueueItems"].ToString();
                myNodeStatus.MyInstancesStatus.Add(InstancesStatus);
            }
            return myNodeStatus;
        }