public void TestPubSub() { string address = string.Format("tcp://localhost:22244"); using (var publisher = new NetMqPublisher(address)) using (var subscriber = new NetMqSubscriber(address)) using (var countDown = new CountdownEvent(2)) { publisher.Start(); subscriber.Start(); subscriber.Subscribe("test", m => { if (!countDown.IsSet) { countDown.Signal(); } }); Task.Run(() => { while (!countDown.IsSet) { publisher.Publish("test", new byte[] { 1, 2, 3 }); Thread.Sleep(100); } }); Assert.IsTrue(countDown.Wait(5000)); } }
public void Start() { _subscriber = new NetMqSubscriber(_pubsubServerAddress, new DefaultConnectionMonitor(OnConnectionStateChanged)); var quotesTopic = new TopicSubscription<Quote> { Topic = Constants.QuotesTopicName, Deserializer = BinarySerializer<Quote>.DeSerializeFromByteArray, MessageHandler = _quoteReceivedAction }; _synchronizers.Add(new TopicSynchronizer<string, Quote, IEnumerable<Quote>>(_subscriber, quotesTopic, _quotesCache, CreateSnapshotClient, (q1, q2) => q2.ProcessedTime > q1.ProcessedTime, q => true, q => q.Instrument, x => x)); if (!_subscriber.StartProducer(60000)) { Debug.WriteLine("Starting Producer FAILED- connecting subscriber - TIMEDOUT"); return; } _subscriber.StartConsumer(); }
public void Start() { _subscriber = new NetMqSubscriber(_pubsubServerAddress, new DefaultConnectionMonitor(OnConnectionStateChanged)); var quotesTopic = new TopicSubscription <Quote> { Topic = "q", Deserializer = BinarySerializer <Quote> .DeSerializeFromByteArray, MessageHandler = _quoteReceivedAction }; _synchronizers.Add(new TopicSynchronizer <ushort, Quote, IEnumerable <Quote> >(_subscriber, quotesTopic, _quotesCache, CreateSnapshotClient, (q1, q2) => q2.LastUpdate > q1.LastUpdate, q => true, q => q.InstrumentId, x => x)); if (!_subscriber.StartProducer(60000)) { Debug.WriteLine("Starting Producer FAILED- connecting subscriber - TIMEDOUT"); return; } _subscriber.StartConsumer(); }
public bool Start() { _publisher = new NetMqPublisher(_localAddress); _publisher.Start(); _subscriber = new NetMqSubscriber(_partnerAddress, new DefaultConnectionMonitor(OnConnectionStateChanged)); if (!_subscriber.StartProducer(_connectTimeout)) { return(false); } _subscriber.Subscribe(new TopicSubscription <NodeState> { Topic = "Cluster", MessageHandler = _updateAction, Deserializer = DeserializeState }); _subscriber.StartConsumer(); return(true); }
public void TestPubSub() { string address = string.Format("tcp://localhost:22244"); using (var publisher = new NetMqPublisher(address)) using (var subscriber = new NetMqSubscriber(address)) using (var countDown = new CountdownEvent(2)) { publisher.Start(); subscriber.Start(); subscriber.Subscribe("test", m => { if (!countDown.IsSet) countDown.Signal(); }); Task.Run(() => { while (!countDown.IsSet) { publisher.Publish("test", new byte[] {1, 2, 3}); Thread.Sleep(100); } }); Assert.IsTrue(countDown.Wait(5000)); } }