private void connectionManager_PullMulticastMetadatasRequestEvent(object sender, PullMulticastMetadatasRequestEventArgs e)
        {
            var connectionManager = sender as ConnectionManager;
            if (connectionManager == null) return;

            var packetManager = _packetControlManager[connectionManager.Node];

            if (packetManager.PullMulticastMetadatasRequest.Count > _maxMetadataRequestCount * packetManager.PullMulticastMetadatasRequest.SurvivalTime.TotalMinutes) return;

            Debug.WriteLine(string.Format("ConnectionManager: Pull MulticastMetadatasRequest ({0})", e.Tags.Count()));

            foreach (var tag in e.Tags.Take(_maxMetadataRequestCount))
            {
                if (!ConnectionsManager.Check(tag)) continue;

                packetManager.PullMulticastMetadatasRequest.Add(tag);
                _pullMetadataRequestCount.Increment();
            }
        }
        private void connectionManager_PullMulticastMetadatasRequestEvent(object sender, PullMulticastMetadatasRequestEventArgs e)
        {
            var connectionManager = sender as ConnectionManager;
            if (connectionManager == null) return;

            var messageManager = _messagesManager[connectionManager.Node];

            if (messageManager.PullMulticastWikisRequest.Count > _maxMetadataRequestCount * messageManager.PullMulticastWikisRequest.SurvivalTime.TotalMinutes) return;
            if (messageManager.PullMulticastChatsRequest.Count > _maxMetadataRequestCount * messageManager.PullMulticastChatsRequest.SurvivalTime.TotalMinutes) return;

            Debug.WriteLine(string.Format("ConnectionManager: Pull MulticastMetadatasRequest ({0})",
                e.Wikis.Count()
                + e.Chats.Count()));

            foreach (var tag in e.Wikis.Take(_maxMetadataRequestCount))
            {
                if (!ConnectionsManager.Check(tag)) continue;

                messageManager.PullMulticastWikisRequest.Add(tag);
                _pullMetadataRequestCount.Increment();

                _multicastWikiLastAccessTimes[tag] = DateTime.UtcNow;
            }

            foreach (var tag in e.Chats.Take(_maxMetadataRequestCount))
            {
                if (!ConnectionsManager.Check(tag)) continue;

                messageManager.PullMulticastChatsRequest.Add(tag);
                _pullMetadataRequestCount.Increment();

                _multicastChatLastAccessTimes[tag] = DateTime.UtcNow;
            }
        }