cp — Qpid C ++ Messaging API & amp; amqp .net lite

Я занимаюсь разработкой приложения на C ++ с использованием Qpid C ++ Messaging API. Приложение должно отправлять сообщения другому приложению .net, работающему с amqpnetlite.

Однако при инициализации соединения на стороне C ++ я получил эту ошибку безопасности:

[Security] error Expected SASL frame; got type \0x00
[Security] error Unexpected descriptor in SASL negotiation: unknown-descriptor (0x10).

Мне было интересно, у кого-нибудь есть мысли по поводу ошибки?

Дополнительная информация:

  1. Я подтверждаю, что приложение C ++ говорит на AMQP 1.0.
  2. У меня также есть этот скрипт на Python (использующий Qpid Proton 0.10), который говорит на AMQP 1.0 и отправляет практически то же сообщение в приложение .net. Этот скрипт Python работает просто отлично.
  3. Я установил брокер C ++ AMQP с qpidd --auth no, Теперь и сценарий Python, и приложение C ++ (подключение настроено с помощью {sasl_mechanism:ANONYMOUS}) может отправлять сообщения через.

Любая или вся помощь будет оценена!


РЕДАКТИРОВАТЬ

Найди решение сам.

При инициализации соединения на стороне приложения C ++ для SASL_MECHANISMS должно быть явно установлено NONE, поскольку по умолчанию amqpnetlite отключает любую аутентификацию (даже не режим ANONYMOUS) при прослушивании входящего соединения.

Это можно сделать в коде C ++, выполнив

connection.setOption("sasl_mechanisms","NONE");

или предоставив опцию из командной строки.

./send.o localhost {protocol:amqp1.0\,sasl_mechanisms:NONE}

Параметр NONE для sasl_mechanisms нигде не описан в документации по API Qpid C ++. Это нужно выяснить, заглянув в исходный код.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]