I'm looking into the C++ AMQP implementations in Apache Qpid.
I've installed the C++ broker and I'm able to simply launch it by:
qpidd -p 8080
The obvious library choice to create client code is the proton API which has some examples. When running the following:
./simple_send -a 127.0.0.1:8080
I get:
amqp:connection:framing-error: Expected SASL protocol header got: Pre standard AMQP connection ['AMQP\x01\x01\x00\x0a']
When I modify the example to remove SASL from the connection options,
proton::connection_options co;
co.sasl_enabled(false);
the error becomes:
amqp:connection:framing-error: Expected AMQP protocol header got: Unknown protocol ['AMQP\x01\x01\x00\x0a']
To my understanding, the proton API expects a "version 10" of the AMQP protocol and (as the error says) gets back a "1.1". Is this the case? Can I overcome this error?
qpidd
has an option --protocols
but I don't know how to specify the version 10 (passing strings like "AMQP 10" results in "error no protocols specified"). The broker example contained in the proton examples does work with simple_send
but my intention is not to rewrite a broker, but use an industrial strength one, like Qpid C++ broker
.