I have an older application that I'm trying to get onto the latest and greatest version of Rabbit and the .NET client. I'm having a bit of a problem getting it to work the same way across the API changes.<div><br></div>
<div>In my old app, I had a simple piece that broadcast to all of my consumers who happen to be listening. Let's say they print the message's content to the console when they get it. It was pretty simple. Each consumer just creates a subscription:</div>
<div><br></div><div>Subscription sub = new Subscription(ch, someExchange, ExchangeType.Topic, someTopic);</div><div><br></div><div>and listened to it. The broadcaster just did this:</div><div><br></div><div>ch.BasicPublish(someExchange, someTopic, null, someBytes);</div>
<div><br></div><div>Now, that signature for Subscription no longer exists. I've tried stuff like this (which matches the old implementation from Subscription.cs):</div><div><br></div><div><div>ch.ExchangeDeclare(EXCHANGE, ExchangeType.Topic);</div>
<div>ch.QueueDeclare(STATUS_QUEUE);</div><div>ch.QueueBind(STATUS_QUEUE, EXCHANGE, TOPIC, false, null);</div><div>Subscription sub = new Subscription(ch, STATUS_QUEUE, true);</div></div><div><br></div><div>But the behavior I'm seeing is totally different:</div>
<div><br></div><div>1. Only one of the consumers gets the message and prints something. It's round-robin instead of broadcast.</div><div>2. When a new consumer is created and subscribes, it gets all of the messages I've ever put in the queue and prints them to the console.</div>
<div><br></div><div>I'm able to fix #2 by changing noAck to true, but not #1, and I suspect I have something very wrong. Any ideas?</div><div><br></div><div>Thanks,</div><div>Isaac</div>