private void NotifyOnlineOffline(bool online = true) { var collection = SubscribeCollection.Select(s => string.Format("{0}:{1}|{2}", s.MonitorIP, s.MonitorListenPort, s.MonitorAlias)).ToList().Distinct(); foreach (var str in collection) { string[] strArray = str.Split(new char[] { '|' }); if (strArray.Length != 2) { continue; } string monitorIP = strArray[0]; string monitorAlias = strArray[1]; SynchronousSocketManager.Instance.SendOnlineOfflineInfo(UtilHelper.Instance.GetIPEndPoint(monitorIP), monitorAlias, online); } }