Example #1
0
        protected override void ProducerAction()
        {
            using (NetMQContext ctx = NetMQContext.Create())
            {
                using (SubscriberSocket socket = ctx.CreateSubscriberSocket())
                {
                    using (
                        var monitor = new NetMQMonitor(ctx, socket, "inproc://monitor.sub/" + Guid.NewGuid(),
                                                       SocketEvent.Connected | SocketEvent.Disconnected))
                    {
                        monitor.Connected    += monitor_Connected;
                        monitor.Disconnected += monitor_Disconnected;
                        monitor.Timeout       = TimeSpan.FromMilliseconds(100);
                        Task.Factory.StartNew(monitor.Start);

                        socket.Connect(Address);
                        socket.Subscribe(string.Empty);
                        while (true)
                        {
                            _commandProcessor.ExecuteAll(socket);
                            NetMQMessage message = socket.ReceiveMessage();
                            if (message != null && !IsEmpty)
                            {
                                Queue.Add(message);
                            }
                        }
                    }
                }
            }
        }