1

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.

Lorah Attkins
  • 5,331
  • 3
  • 29
  • 63

0 Answers0