/// <summary> /// Removes a subscriber that didn't respond to a heartbeat request /// </summary> /// <param name="sub"></param> void SubscriberTimedOut(Subscriber sub) { Debug.WriteLine("Not feeling a pulse for {0}", sub.SubscriberId); Storage.RemoveSubscriber(sub.SubscriberId); HeartbeatMonitorList.Remove(sub.SubscriberId); }
/// <summary> /// Interface method used by clients /// </summary> /// <param name="clientId">Calling clients' ID</param> public void Heartbeat(Guid clientId) { if (clientId == Guid.Empty) { return; } Debug.WriteLine("Received heartbeat from {0}", clientId); if (HeartbeatMonitorList.Contains(clientId)) { HeartbeatMonitorList.Remove(clientId); } Storage.SubscriberSeen(clientId); }