在rabbitmq的官网上有详细的各种语言的rabbitmq教程,然而唯独没有C++版本的, 本文将提供一个简单的例子, 若想进一步学习可以通过官网教程和SimpleAmqpClient的API文档学习, API文档的生成方法在上一篇博客中有写.如果觉得麻烦, 也可以看下一篇: linux下SimpleAmqpClient的函数参数解释
send.cpp
#include <SimpleAmqpClient/SimpleAmqpClient.h>
#include <iostream>
#include <string>
using namespace std;
int main() {
string queue = "hello";
AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create();
channel->DeclareQueue(queue, false, false, false, false);
string str = "hello world!";
channel->BasicPublish("", queue, AmqpClient::BasicMessage::Create(str));
cout << "sent hello world";
}
recv.cpp
#include <SimpleAmqpClient/SimpleAmqpClient.h>
#include <iostream>
#include <string>
using namespace std;
int main() {
while(1) {
string queue = "hello";
AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create();
channel->DeclareQueue(queue, false, false, false, false);
AmqpClient::Envelope::ptr_t envelope;
channel->BasicConsume(queue, "", true, true, false);
bool success = channel->BasicConsumeMessage(envelope, -1);
string buffer = envelope->Message()->Body();
cout << buffer << endl;
}
}
编译
g++ send.cpp -o send -lSimpleAmqpClient
g++ recv.cpp -o recv -lSimpleAmqpClient
运行
第一个终端 ./recv
第二个终端 ./send
运行结果
第一个终端将显示 hello world!
本文提供了一个使用C++和SimpleAmqpClient库与RabbitMQ消息队列交互的简单示例,包括发送和接收消息的代码实现。
1万+

被折叠的 条评论
为什么被折叠?



