Пример #1
0
        static void Main(string[] args)
        {
            string connectionString = "MyConnectionString";

            const string topicName = "shopify-notifications";

            Publisher publisher = new Publisher(topicName, connectionString);
            
            Subscriber subscriber = new Subscriber(topicName, connectionString);

            subscriber.Subscribe<SampleEvent>("SampleEvents", message => Console.WriteLine(
                String.Format("received message with id \"{0}\" and content \"{1}\"", message.MessageId,
                    message.GetBody().Message)));

            while (true)
            {
                Console.WriteLine("Write something to send a message:");
                string message = Console.ReadLine();

                if (!string.IsNullOrEmpty(message))
                {
                    var publishMessage = PublishMessage.Create(new SampleEvent(message), Guid.NewGuid().ToString());
                    publisher.Send(publishMessage);
                }
            }
        }
        public void CanSubscribeToPublishedEvent()
        {
            SubscriptionMessage<SampleEvent> receivedMessage = null;
            AutoResetEvent autoResetEvent = new AutoResetEvent(false);

            // Register the subscriber
            Subscriber subscriber = new Subscriber(Configuration.SampleTopicName, Configuration.AzureServiceBusConnectionString);
            subscriber.Subscribe<SampleEvent>("StronglyTypedPubSubSubscription", message =>
            {
                receivedMessage = message;
                autoResetEvent.Set();
            });

            Publisher publisher = new Publisher(Configuration.SampleTopicName, Configuration.AzureServiceBusConnectionString);
            publisher.Send(PublishMessage.Create(new SampleEvent("test"), Guid.NewGuid().ToString()));

            autoResetEvent.WaitOne(TimeSpan.FromSeconds(5));

            Assert.IsNotNull(receivedMessage);
            Assert.AreEqual("test", receivedMessage.GetBody().Message);
        }