Ejemplo n.º 1
0
        public void MultipleSubscribers()
        {
            using (var pub = new XPublisherSocket())
                using (var sub = new XSubscriberSocket())
                    using (var sub2 = new XSubscriberSocket())
                    {
                        var port = pub.BindRandomPort("tcp://127.0.0.1");

                        sub.Connect("tcp://127.0.0.1:" + port);
                        sub.SendFrame(new byte[] { 1, (byte)'A' });
                        sub.SendFrame(new byte[] { 1, (byte)'A', (byte)'B' });
                        sub.SendFrame(new byte[] { 1, (byte)'B' });
                        sub.SendFrame(new byte[] { 1, (byte)'C' });

                        sub2.Connect("tcp://127.0.0.1:" + port);
                        sub2.SendFrame(new byte[] { 1, (byte)'A' });
                        sub2.SendFrame(new byte[] { 1, (byte)'A', (byte)'B' });
                        sub2.SendFrame(new byte[] { 1, (byte)'C' });

                        Thread.Sleep(500);

                        pub.SendMoreFrame("AB");
                        pub.SendFrame("1");

                        Assert.AreEqual("AB", sub.ReceiveMultipartStrings().First(), "First subscriber is expected to receive the message");

                        Assert.AreEqual("AB", sub2.ReceiveMultipartStrings().First(), "Second subscriber is expected to receive the message");
                    }
        }