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; } }