赞
踩
这里我使用docker
安装rabbitmq
服务端,没有安装的就先去看其他的博客安装rabbitmq
或者docker
#拉取rabbitmq
docker pull rabbitmq:management
#运行rabbitmq,记得打开防火墙端口
docker run -d --hostname rabbitsrv --name rabbit -p 5672:5672 -p 15672:15672 -p 25672:25672 rabbitmq:management
#http示例网址
127.0.0.1:15672
用户名和密码都是guest
添加一个交换机,选择直连模式
添加一个队列
建立绑定规则
填写刚刚创建的my.queue队列,路由key我们输入key1
尝试发送一次消息
随后进入Queeus界面,点击我们创建的队列
SimpleAmqpClient是一个C++库,旨在简化处理AMQP消息的过程。AMQP是一种用于消息传递的开放式标准协议,它允许不同应用程序之间的可靠通信。SimpleAmqpClient使得在C++应用程序中轻松实现AMQP消息处理变得简单。
确保你的开发环境中已经安装了以下工具:
git clone https://github.com/alanxz/rabbitmq-c.git
cd rabbitmq-c
mkdir build && cd build
cmake ..
cmake --build .
在安装了 RabbitMQ-C 后,我们将使用 SimpleAmqpClient 进行 C++ 消息通信。请按照以下步骤安装 SimpleAmqpClient:
git clone https://github.com/alanxz/SimpleAmqpClient.git
cd SimpleAmqpClient
mkdir simpleamqpclient-build
cd simpleamqpclient-build
cmake ..
cmake --build .
在编译时,确保将 SimpleAmqpClient 链接到你的项目中。
#include <SimpleAmqpClient/SimpleAmqpClient.h>
rabbitmq.h
#include <string>
struct RabbitMqInfo{
std::string RabbitURL = "amqp://guest:guest@127.0.0.1:5672";
std::string TransExchangeName = "my.direct";
std::string TransQueueName = "my.queue";
std::string TransRoutingKey = "key1";
};
#include "rabbitmq.h"
#include <SimpleAmqpClient/SimpleAmqpClient.h>
int main(){
// 指定mq的一些信息
RabbitMqInfo MqInfo;
// 创建一条和mq的连接
AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create();
// pause();
// 创建消息
AmqpClient::BasicMessage::ptr_t message = AmqpClient::BasicMessage::Create("Hello");
// 发布消息
channel->BasicPublish(MqInfo.TransExchangeName,MqInfo.TransRoutingKey,message);
}
#include "rabbitmq.h"
#include <SimpleAmqpClient/SimpleAmqpClient.h>
int main(){
// 指定mq的一些信息
RabbitMqInfo MqInfo;
// 创建通道
AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create();
// 指定获取一个从某一个队列中的消息
channel->BasicConsume(MqInfo.TransQueueName);
//信封,用来存储消息
AmqpClient::Envelope::ptr_t envelope;
//消费消息
bool isNotTimeout = channel->BasicConsumeMessage(envelope,5000);
if(isNotTimeout == false){
fprintf(stderr,"timeout\n");
return -1;
}
fprintf(stderr,"message = %s\n", envelope->Message()->Body().c_str());
return 0;
}
SimpleAmqpClient提供了一个简单而强大的方式来在C++应用程序中处理AMQP消息。通过这个库,你可以轻松地实现可靠的消息通信,使你的应用程序更加灵活和可扩展。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。