Я прослушиваю изменения соединения через подключение событий ("amq.rabbitmq.event", "connection. #").
Это работает правильно, поэтому я добавляю на стороне java два дополнительных параметра в качестве clientproperties, чтобы получить личность пользователя, который подключается или отключается.
Однако на стороне c # я могу получить доступ только к этимсвойства в виде списка байтов [], и не уверен, как преобразовать его в словарь или около того ..
Если я распечатаю все записи
if (args.BasicProperties.Headers.TryGetValue("client_properties", out object value))
{
var items = value as List<object>;
foreach(var item in items)
{
Console.WriteLine($"{item.GetType().ToString()}");
var bytes = item as byte[];
result.Add(Encoding.UTF8.GetString(bytes));
}
}
, я вижу это:
{<<"platform">>,longstr,<<"Java">>}
{<<"capabilities">>,table,[{<<"connection.blocked">>,bool,true},{<<"basic.nack">>,bool,true},{<<"exchange_exchange_bindings">>,bool,true},{<<"authentication_failure_close">>,bool,true},{<<"publisher_confirms">>,bool,true},{<<"consumer_cancel_notify">>,bool,true}]}
{<<"groupId">>,longstr,<<"1e6e935f0d4d9ec446d67dadc85cbafd10d1a095">>}
{<<"information">>,longstr,<<"Licensed under the MPL. See http://www.rabbitmq.com/">>}
{<<"version">>,longstr,<<"4.8.1">>}
{<<"copyright">>,longstr,<<"Copyright (c) 2007-2018 Pivotal Software, Inc.">>}
{<<"product">>,longstr,<<"RabbitMQ">>}
Какой формат объекта и как я могу его проанализировать ?:
{<<id>>,type,<<value>>}