# RabbitMQClient **Repository Path**: cnull_project/RabbitMQClient ## Basic Information - **Project Name**: RabbitMQClient - **Description**: RabbitMQ c++版客户端,便于调用API - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-05 - **Last Updated**: 2022-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![](./res/CDBQuery.png) **RabbitMQClient 是 RabbitMQ c++版客户端,便于调用API** # Features * 基于 librabbitmq.so 编译 libmq.so,调用使用简洁 **WARNING: ** > 目前linux版库使用 Ubuntu 16.0.4,若是 centos 等其他系统,需要替换lib文件下的动态库 # Building ``` make ``` # Test 测试前需要修改 test/main.cpp 中的数据库账号密码 ``` cd test make ./RabbitMQTest ``` # Usage RabbitMQClient 是 RabbitMQ c++版客户端,调用方式异常简洁 ```c++ #include #include #include #include "CRabbitMQ.h" using namespace std; #define AAA_send_EXCHANGE "AAA_send_EXCHANGE" #define AAA_send_QUEUE "AAA_send_QUEUE" #define AAA_send_KEY "AAA_send_KEY" #define AAA_recv_EXCHANGE "AAA_recv_EXCHANGE" #define AAA_recv_QUEUE "AAA_recv_QUEUE" #define AAA_recv_KEY "AAA_recv_KEY" #define CDE_recv_EXCHANGE "CDE_EXCHANGE" #define CDE_recv_QUEUE "CDE_QUEUE" #define CDE_recv_KEY "CDE_KEY" #define CDE_send_EXCHANGE "CDE_send_EXCHANGE" #define CDE_send_QUEUE "CDE_send_QUEUE" #define CDE_send_KEY "CDE_send_KEY" void callback(CMessage &msg, void* arg) { CRabbitMQ* mq = (CRabbitMQ*)arg; /* * 业务逻辑处理 */ printf("wwwww %s\n", msg.m_data.c_str()); // 根据交换机名称和路由键Key名称发送高级消息队列消息 mq->publish(msg.m_data, AAA_send_EXCHANGE, AAA_send_KEY); } int main() { // 队列对象 CQueue queue(CDE_recv_QUEUE); // 接收交换机对象 CExchange exchange(CDE_recv_EXCHANGE); // 发送交换机对象 CExchange sexchange(CDE_send_EXCHANGE); // MQ 连接句柄对象 CRabbitMQ mq; // 设置 ip,端口,账号等 mq.setHostIp("192.168.2.37"); mq.setVHostName("/"); mq.setPort(5672); mq.setUser("admin"); mq.setPswd("123456"); // 定义默认队列,默认接收交换机,绑定队列,设置发送交换机对象 mq.init(queue, exchange, CDE_recv_KEY, callback, sexchange); // 绑定队列,交换机与路由Key mq.bind(CQueue(CDE_send_QUEUE), CExchange(AAA_send_EXCHANGE), AAA_send_KEY); CMessage msg("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); // 发送消息到指定交换机和路由Key中 mq.publish(msg, CDE_recv_EXCHANGE, CDE_recv_KEY); while(1) { sleep(1000); } cout << "Hello World!" << endl; return 0; } ```