static void Main(string[] args) { var options = new Options(); var valid = CommandLine.Parser.Default.ParseArguments(args, options); if (!valid) { System.Environment.Exit(1); return; } Console.WriteLine("NSQnet CLI 1.0"); for (int x = 0; x < Console.WindowWidth; x++) { Console.Write("="); } Console.WriteLine(); NSQLookup lookupClient = new NSQLookup(options.Hostname, options.Port); var up = lookupClient.Ping(); Console.WriteLine("NSQLookupd Server is " + (up ? "UP" : "NOT OK")); if (up) { while (true) { PollForNewSubscribers(lookupClient); Thread.Sleep(500); //poll every half second for new } } }
public static void PollForNewSubscribers(NSQLookup lookupClient) { var topics = lookupClient.Topics(); foreach (var topic in topics) { foreach (var producer in lookupClient.ProducersForTopic(topic)) { if (!_subscribers.ContainsKey(producer.Hostname.ToLower())) { var sub = GetSubscriber(producer.Hostname.ToLower(), producer.Hostname.ToLower(), producer.Hostname, (int)producer.TCP_Port, topic); _subscribers.AddOrUpdate(sub.LongIdentifier, sub, (long_id, oldSub) => sub); } else if (!_subscribers[producer.Hostname.ToLower()].IsSubscribed(topic, topic)) { _subscribers[producer.Hostname.ToLower()].Subscribe(topic, topic); } } } }
static void Main(string[] args) { var options = new Options(); var valid = CommandLine.Parser.Default.ParseArguments(args, options); if (!valid) { System.Environment.Exit(1); return; } Console.WriteLine("NSQnet CLI 1.0"); for (int x = 0; x < Console.WindowWidth; x++) { Console.Write("="); } Console.WriteLine(); NSQLookup lookupClient = new NSQLookup(options.Hostname, options.Port); var up = lookupClient.Ping(); Console.WriteLine("NSQLookupd Server is " + ( up ? "UP" : "NOT OK")); if(up) { while (true) { PollForNewSubscribers(lookupClient); Thread.Sleep(500); //poll every half second for new } } }
public static void PollForNewSubscribers(NSQLookup lookupClient) { var topics = lookupClient.Topics(); foreach (var topic in topics) { foreach(var producer in lookupClient.ProducersForTopic(topic)) { if (!_subscribers.ContainsKey(producer.Hostname.ToLower())) { var sub = GetSubscriber(producer.Hostname.ToLower(), producer.Hostname.ToLower(), producer.Hostname, (int)producer.TCP_Port, topic); _subscribers.AddOrUpdate(sub.LongIdentifier, sub, (long_id, oldSub) => sub); } else if (!_subscribers[producer.Hostname.ToLower()].IsSubscribed(topic, topic)) { _subscribers[producer.Hostname.ToLower()].Subscribe(topic, topic); } } } }