示例#1
0
        public void Unsubscribe()
        {
            using (var pub = new MessagePublisher(9202))
                using (var sub = new MessageSubscriber("localhost", 9202))
                {
                    var handler = new TestSubscribeHandler();
                    sub.SetReceiveHandleEvent(handler);
                    sub.Listen();
                    sub.Subscribe(Encoding.UTF8.GetBytes("A"));
                    Thread.Sleep(200);

                    pub.Send(Encoding.UTF8.GetBytes("A"), Encoding.UTF8.GetBytes("hello"));
                    Thread.Sleep(200);

                    Assert.Equal("A", Encoding.UTF8.GetString(handler.Block[0]));
                    Assert.Equal("hello", Encoding.UTF8.GetString(handler.Block[1]));
                    handler.Block = null;

                    sub.Unsubscribe(Encoding.UTF8.GetBytes("A"));
                    Thread.Sleep(200);

                    pub.Send(Encoding.UTF8.GetBytes("A"), Encoding.UTF8.GetBytes("hello"));
                    Thread.Sleep(200);

                    Assert.Null(handler.Block);
                }
        }
示例#2
0
        public void PubSubTopic(string topic, string message)
        {
            using (var pub = new MessagePublisher(9201))
                using (var sub = new MessageSubscriber("localhost", 9201))
                {
                    var handler = new TestSubscribeHandler();
                    sub.SetReceiveHandleEvent(handler);
                    sub.Listen();
                    sub.Subscribe(Encoding.UTF8.GetBytes(topic));
                    Thread.Sleep(200);

                    pub.Send(Encoding.UTF8.GetBytes(topic), Encoding.UTF8.GetBytes(message));
                    Thread.Sleep(200);

                    Assert.Equal(topic, Encoding.UTF8.GetString(handler.Block[0]));
                    Assert.Equal(message, Encoding.UTF8.GetString(handler.Block[1]));
                }
        }