在C++中使用 RabbitMQ,可以使用 RabbitMQ C++ 客户端库,例如 AMQP-CPP。这个库提供了一组 C++ 类和函数,可以方便地连接到 RabbitMQ 服务器,发送和接收消息。
以下是一个简单的示例,演示了如何在C++中使用 AMQP-CPP 来连接到 RabbitMQ 服务器并发送和接收消息:
#include <iostream>
#include "SimplePocoHandler.h"
#include "SimplePocoHandler.cpp"
int main() {
// 创建 AMQP-CPP 的事件循环
SimplePocoHandler handler;
// 连接到 RabbitMQ 服务器
AMQP::TcpConnection connection(&handler, AMQP::Address("amqp://guest:guest@localhost"));
// 创建一个通道
AMQP::TcpChannel channel(&connection);
// 声明一个交换机
channel.declareExchange("my_exchange", AMQP::fanout);
// 发布一条消息到交换机
channel.publish("my_exchange", "", "Hello, RabbitMQ!");
// 声明一个队列
channel.declareQueue("my_queue");
// 将队列绑定到交换机
channel.bindQueue("my_queue", "my_exchange", "");
// 消费队列中的消息
channel.consume("my_queue")
.onReceived([](const AMQP::Message &message, uint64_t deliveryTag, bool redelivered) {
std::cout << "Received message: " << message.body() << std::endl;
});
// 启动事件循环
handler.loop();
return 0;
}
在上面的示例中,我们首先创建了一个 AMQP-CPP 的事件处理器 SimplePocoHandler
,然后连接到 RabbitMQ 服务器。接着,我们声明了一个交换机和一个队列,并将队列绑定到交换机。然后,我们发布一条消息到交换机,并使用 consume
方法消费队列中的消息。最后,启动事件循环以接收消息。
需要注意的是,需要在项目中包含 AMQP-CPP 库头文件,并链接相应的库文件。可以在 AMQP-CPP 的 GitHub 仓库(https://github.com/CopernicaMarketingSoftware/AMQP-CPP)中找到更多关于使用该库的信息。