示例#1
0
        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
                }
            }
        }
示例#2
0
        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);
                    }
                }
            }
        }
示例#3
0
文件: Program.cs 项目: 40a/NSQnet
        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
                }
            }
        }
示例#4
0
文件: Program.cs 项目: 40a/NSQnet
        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);
                    }
                }
            }
        }