public void MultipleSubscriptions() { using (var pub = new PublisherSocket()) using (var sub = new SubscriberSocket()) { var port = pub.BindRandomPort("tcp://127.0.0.1"); sub.Connect("tcp://127.0.0.1:" + port); sub.Subscribe("C"); sub.Subscribe("B"); sub.Subscribe("A"); sub.Subscribe("D"); sub.Subscribe("E"); Thread.Sleep(500); sub.Unsubscribe("C"); sub.Unsubscribe("B"); sub.Unsubscribe("A"); sub.Unsubscribe("D"); sub.Unsubscribe("E"); Thread.Sleep(500); } }
public void Unsubscribe() { using (var pub = new PublisherSocket()) using (var sub = new SubscriberSocket()) { int port = pub.BindRandomPort("tcp://127.0.0.1"); sub.Connect("tcp://127.0.0.1:" + port); sub.Subscribe("A"); // let the subscriber connect to the publisher before sending a message Thread.Sleep(500); pub.SendMoreFrame("A").SendFrame("Hello"); CollectionAssert.AreEqual(new[] { "A", "Hello" }, sub.ReceiveMultipartStrings()); sub.Unsubscribe("A"); Thread.Sleep(500); pub.SendMoreFrame("A").SendFrame("Hello again"); Assert.IsFalse(sub.TrySkipFrame()); } }