static void Main(string[] args)
		{
			Console.Write("Reactive Extensions publisher demo:\n");

			string endPoint = "tcp://127.0.0.1:56001";
			if (args.Length >= 1)
			{
				endPoint = args[0];
			}

			Console.Write("Endpoint: {0}\n", endPoint);

			var subject = new SubjectNetMQ<MyMessage>(endPoint, loggerDelegate: msg => Console.Write(msg));

			// Debug: subscribe to ourself. If you run the "SampleSubscriber" project now, you will see the same
            // messages appearing in that subscriber too.
			subject.Subscribe(message =>
			{
				Console.Write("Received: {0}, '{1}'.\n", message.Num, message.Name);
			});

			int i = 0;
			while (true)
			{
				var message = new MyMessage(i, "Bob");

				// When we call "OnNext", it binds a publisher to this endpoint endpoint.
				subject.OnNext(message);

				Console.Write("Published: {0}, '{1}'.\n", message.Num, message.Name);
				Thread.Sleep(TimeSpan.FromMilliseconds(1000));
				i++;
			}
			// NOTE: If you run the "SampleSubscriber" project now, you will see the same messages appearing in the subscriber.
		}
		static void Main(string[] args)
		{
			Console.Write("Reactive Extensions publisher demo:\n");

			SubjectNetMQ<MyMessage> subject = new SubjectNetMQ<MyMessage>("tcp://127.0.0.1:56001");

			int i = 0;
			while (true)
			{
				var message = new MyMessage(i, "Bob");
				subject.OnNext(message);

				Console.Write("Published: {0}, '{1}'.\n", message.Num, message.Name);
				Thread.Sleep(TimeSpan.FromMilliseconds(1000));
				i++;
			}
		}