RabbitMQ - SimpleAmqpClient - 我正在尝试发送 headers 和我的消息,但 headers 没有被发送;我究竟做错了什么?

RabbitMQ - SimpleAmqpClient - I am trying to send headers along with my message but the headers are not being sent; what am I doing wrong?

我正在使用以下内容:https://github.com/alanxz/SimpleAmqpClient

我正在尝试将 headers 与我的消息一起发送,但是 headers 没有被发送;我做错了什么?

这是我的代码的样子。我有一个带有一些基本配置值的配置 object。

auto channel = AmqpClient::Channel::Create("localhost", 5672, configuration.UserName, configuration.Password, configuration.VirtualHost, 131072);

channel->DeclareQueue(configuration.QueueName, false, true, false, true);
auto messageBody = "simple json string message nothing fancy"
auto message = AmqpClient::BasicMessage::Create(messageBody);
message->DeliveryMode(AmqpClient::BasicMessage::delivery_mode_t::dm_nonpersistent);
message->ContentType("application/json");
message->Type("XYZRequest");
message->AppId("a guid");
auto headerTable = message->HeaderTable();
headersTable.insert(std::pair<string, string>("Key-1", "value-1"));
headersTable.insert(std::pair<string, string>("Key-2", "value-2"));

channel->BasicPublish(std::string(), configuration.ScoreQueueName, message);

这会将消息发送到 queue,我可以在 RabbitMq 管理门户上看到除 headers 之外的所有详细信息(AppID、类型、消息 Body 等) .

我错过了什么?是某种配置还是什么?

如果有人能给我 link 如何发送 headers 的基本教程,我将不胜感激。

我卡住了。请帮忙。

message->HeaderTable() 不是 return 对 headers 的引用,而是 return 的副本。

要设置 headers 必须先构建 headersTable,然后使用 message->HeadersTable(headersTable).

Table headersTable;
headersTable.insert(std::pair<string, string>("Key-1", "value-1"));
headersTable.insert(std::pair<string, string>("Key-2", "value-2"));

message->HeadersTable(headersTable);