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);
我正在使用以下内容: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);