У меня возникла проблема с самым тривиальным шагом в Qpid Proton. Вот мои настройки
qpid-config -a localhost:5672 add exchange test.announce
qpid-config -a localhost:5672 add queue test.announce.q
qpid-config -a localhost:5672 bind test.announce test.announce.q
(ключ маршрутизации не указан намеренно)
Когда я запускаю proton cpp сервер и клиент со следующим
./server -a amqp://127.0.0.1:5672/test.announce
./client -a amqp://127.0.0.1:5672/test.announce.q
клиент не может связаться с сервером. Но используя автономные инструменты qpid
qpid-receive -a test.announce.q -b 127.0.0.1:5672 -t -f
echo "hello world!!!"|qpid-send -b 127.0.0.1:5672 -a test.announce -m 1 --content-stdin
это работает как ожидалось.
Запуск qpid-send на сервере Proton также, кажется, работает нормально. Я не вижу ничего в API сообщений Протона, который я могу обновить, и не уверен, что мне здесь не хватает. Код сервера и клиента в значительной степени идентичен коду в снимке 0.12. Какие-нибудь мысли?
Я понял свою ошибку. Концепция сервера и клиента в AMQP кажется несколько противоположной. Я изменил приложения так, чтобы клиент «отправлял» при обмене, а сервер слушал в очереди, и все работало.
./server -a amqp://127.0.0.1:5672/test.announce.q
./client -a amqp://127.0.0.1:5672/test.announce
Других решений пока нет …