How do you consume using Spring Cloud Stream (that is using AMQP) messages sent with MQTT to RabbitMQ? With MQTT on Rabbit, all messages land on an exchange called "amq.topic".
On the consumer side, with Spring Cloud Stream, a queue is created for each destination and an exchange of type "topic" with the name of the destination; the created queue is bound to the exchange.
Now,
I cannot manually bind my queue to the "amq.topic", because it is exclusive:
cannot obtain exclusive access to locked queue '...' in vhost '/'. It could be originally declared on another connection or the exclusive property value does not match that of the original declaration.
I cannot listen directly from the exchange "amq.topic", because, well, you have to listen to a queue...
I created a "tmp" queue bound to "amq.topic" where messages are delivered, but I cannot use it as destination, because RMQ will create a new queue called "tmp.SOME_CLIENT_ID", bound to an exchange called "tmp", that has nothing to do with my "tmp" queue.
Any idea would be welcome!