Exemple #1
0
        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();
        }
Exemple #4
0
        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));
            }
        }