I am new to messaging and am currently learning using RabbitMQ as part of our system architecture for messaging between different services. I have a basic RabbitMQ example , and it can send the main text message on the bus. It seems like EasyNetQ may just have some difficulty using RabbitMQ, although I find it a little difficult to get it working.
Instead of a simple line, I would like to send a more extended message, represented by the following class:
public class Message { public string Text { get; set; } public int RandomNumber { get; set; } public DateTime Date { get; set; } }
I try to send this by posting it to the queue and then starting the subscriber from the queue. My code is as follows:
Publisher
using (var bus = RabbitHutch.CreateBus("host=localhost")) { var message = new Message() { Text = "Hello World", RandomNumber = new Random().Next(1,100), Date = DateTime.Now }; bus.Publish<Message>(message); }
Receiver
using (var bus = RabbitHutch.CreateBus("host=localhost")) { bus.Subscribe<Message>("test", m => Console.WriteLine(string.Format("Text: {0}, RandomNumber: {1}, Date: {2}", m.Text, m.RandomNumber, m.Date))); }
Both sides seem to be connecting, and the publisher reports that the message was posted:
DEBUG: Trying to connect INFO: Connected to RabbitMQ. Broker: 'localhost', VHost: '/' DEBUG: Published UserQuery+Message:query_lzzfst, CorrelationId ec81fc89-4d60-4a8b-8ba2-7a6d0818d2ed
The subscriber registers the following:
DEBUG: Trying to connect INFO: Connected to RabbitMQ. Broker: 'localhost', VHost: '/'
It seems that the subscriber either does not connect to the queue (or the correct queue), or is there something else I need to do to really get the message?