在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)中找到更多關于使用該庫的信息。