/// <summary>
 /// 通知消息
 /// </summary>
 /// <param name="status"></param>
 public void Notify(ServerStatus status)
 {
     _pushTime = DateTime.Now;
     _innerListener.Push(status);
 }
Example #2
0
 public void Push(ServerStatus serverStatus)
 {
     //服务端定时状态信息
 }
        /// <summary>
        /// 服务状态信息
        /// </summary>
        /// <returns></returns>
        public ServerStatus GetServerStatus()
        {
            ServerStatus status = new ServerStatus
            {
                StartDate = startTime,
                TotalHours = config.RecordHours,
                Highest = GetHighestStatus(),
                Latest = GetLatestStatus(),
                Summary = GetSummaryStatus()
            };

            return status;
        }
        /// <summary>
        /// 响应状态信息
        /// </summary>
        /// <param name="status"></param>
        public void Notify(ServerStatus status)
        {
            if (_listeners.Count == 0) return;

            MessageListener[] listeners = _listeners.ToArray();
            foreach (MessageListener lstn in listeners)
            {
                try
                {
                    var options = lstn.Options;

                    //如果设定的时间不正确,不进行推送
                    if (options.ServerStatusTimer <= 0) continue;

                    //如果推送时间大于设定的时间,则进行推送
                    if (options.PushServerStatus
                        && DateTime.Now.Subtract(lstn.PushTime).TotalSeconds >= options.ServerStatusTimer)
                    {
                        lstn.Notify(status);
                    }
                }
                catch (SocketException ex)
                {
                    RemoveListener(lstn);
                }
                catch (Exception ex)
                {
                    if (OnError != null) OnError(ex);
                }
            }
        }