コード例 #1
0
        public void Basic_scenario()
        {
            var r = new ManualResetEvent(false);

            var publisher = new Publisher <Message1>("mem://message1");

            publisher.Start();

            var subscriber = new Subscriber <Message1>("mem://message1");

            subscriber.Subscribe(m =>
            {
                Console.WriteLine(m.Name);
                Console.WriteLine(m.Number);
                if (m.Name == "DONE")
                {
                    r.Set();
                }
            });

            publisher.Publish(new Message1 {
                Name = "A", Number = 1
            });
            publisher.Publish(new Message1 {
                Name = "B", Number = 2
            });
            publisher.Publish(new Message1 {
                Name = "C", Number = 3
            });
            publisher.Publish(new Message1 {
                Name = "DONE", Number = 4
            });

            r.WaitOne();

            publisher.Stop();
            subscriber.Close();
        }
コード例 #2
0
    public static void Main(string [] args)
    {
        for (int i = 0; i < args.Length; i++)
        {
            if (args[i].Equals("--username") || args[i].Equals("-u"))
            {
                if (i + 1 < args.Length && !args[i + 1].StartsWith("-"))
                {
                    username = args[++i];
                }
                else
                {
                    Usage();
                }
            }
            else if (args[i].Equals("--password") || args[i].Equals("-p"))
            {
                if (i + 1 < args.Length && !args[i + 1].StartsWith("-"))
                {
                    password = args[++i];
                }
                else
                {
                    Usage();
                }
            }
            else if (args[i].Equals("--destination") || args[i].Equals("-d"))
            {
                if (i + 1 < args.Length && !args[i + 1].StartsWith("-"))
                {
                    destination = args[++i];
                }
                else
                {
                    Usage();
                }
            }
            else if (args[i].Equals("--name") || args[i].Equals("-n"))
            {
                if (i + 1 < args.Length && !args[i + 1].StartsWith("-"))
                {
                    durable = args[++i];
                }
                else
                {
                    Usage();
                }
            }
            else if (args[i].Equals("--count") || args[i].Equals("-c"))
            {
                if (i + 1 < args.Length && !args[i + 1].StartsWith("-"))
                {
                    count = Int32.Parse(args[++i]);
                }
                else
                {
                    Usage();
                }
            }
            else if (args[i].StartsWith("-"))
            {
                Usage();
            }
            else
            {
                url = args[i];
            }
        }

        Console.Write("#\n# Subscriber\n#\n# {0}\n#\n", EFTL.GetVersion());

        try {
            Subscriber client = new Subscriber(url, username, password);

            try {
                if (client.IsConnected())
                {
                    latch.Reset();
                    client.Subscribe(destination, durable, count);
                }
            }
            catch (Exception) {}
            finally {
                client.Close();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }