Ошибка публикации python dict для Solace с использованием AMQP / qpid-proton - PullRequest
0 голосов
/ 21 ноября 2018

Попытка запустить файл sample.py из solace-samples-amqp-qpid-proton-python с полезной нагрузкой python dict

Message(id=(self.sent+1), body={'sequence':(self.sent+1)})

Получить следующую ошибку

Отклонить сообщение:1 Удаленное размещение: Условие («amqp: not-реализовано», «неподдерживаемый тип значения AMQP: TOK_MAP_START ')

Получать похожую ошибку при попытке отправить целое значение в теле - TOK_TYPE_INT

Утешение поддерживает только строки поверх AMQP?

1 Ответ

0 голосов
/ 28 ноября 2018

Посредники сообщений Solace поддерживают разделы сообщений amqp-value, содержащие значения типов null, string, binary, symbol или uuid.(https://docs.solace.com/Open-APIs-Protocols/AMQP/AMQP-Protocol-Conformance.htm#Sec3-2-8)

Это делается для того, чтобы сохранить максимальную функциональную совместимость сообщений.

Любое опубликованное сообщение, использующее семантическую семантику, может использоваться только с той же семантикой. Т.е., если вы публикуетес помощью Python dict вы можете декодировать только с использованием Python dict, поэтому, если вы используете потребителя MQTT или REST, он не сможет декодировать сообщение.

Наилучший вариант - использовать многоязыковую сериализациюбиблиотека, которая облегчит будущие расширения. Например, вы можете решить добавить в будущем потребителя REST, который может декодировать данные с использованием библиотеки межязыковой сериализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...