rabbitmq-c++(SimpleAmqpClient) 笔记代码一

来源:互联网 发布:淘宝旺铺基础版模板 编辑:程序博客网 时间:2024/06/05 04:19

前记

之前也写过rabbitmq的笔记(链接点此),但当时是参见官网的java版本(链接点此)所写,更像是译文,而后在实际过程中,要用到C++来使用消息队列,然而官网却没有C++相关的教程,经过自己的摸索,我把官网的教程代码翻译成C++版本,并做了些注释,希望能对有需要的人有帮助。

需要安装

使用C++来写rabbitmq代码时,我使用的是SimpleAmqpClient,需要安装的还挺多,但其github上也有详细的各部分安装地址,可以参考,基本不会有太大问题,如有问题,可在评论提问,如有解决办法,必定回复。

笔记代码一

因为代码其实跟java版本比较相似,一些函数(方法)较为不同,概念上还是大同异端,如果有概念上的不懂,可参照RabbitMQ 学习笔记(一):简单介绍及”Hello World”
接下来为代码部分,跟官网其它语言的例子相似,不做过多解释,有兴趣也可以看看官网其它语言此例子如何写。

Send.cpp代码如下:

#include <SimpleAmqpClient/SimpleAmqpClient.h>#include <iostream>int main() {  std::string queue_name = "hello";  AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create("localhost");  //创建channel  channel->DeclareQueue(queue_name, false, true, false, false);  //创建队列,第一个参数为队列名称,其余后续会提到。  std::string message;  std::cin >> message;  channel->BasicPublish("", queue_name,                        AmqpClient::BasicMessage::Create(message));  //第一个是exchange名称,第二个参数是routing_key(此处可理解为消息会被送往的队列)。  std::cout << "[x] send " << message << std::endl;}

Recv.cpp代码如下:

#include <SimpleAmqpClient/SimpleAmqpClient.h>#include <iostream>int main() {  std::string queue_name = "hello";  AmqpClient::Channel::ptr_t channel = AmqpClient::Channel::Create("localhost");  channel->DeclareQueue(queue_name, false, true, false, false);  std::string consumer_tag = channel->BasicConsume(queue_name, "");  //第二个参数为消费者名称,返回值也是消费者名称。  while (1) {    std::cout << "[y] wait for the message" << std::endl;    AmqpClient::Envelope::ptr_t envelope =        channel->BasicConsumeMessage(consumer_tag);    std::string buffer = envelope->Message()->Body();    //消息放在信封里,需要解析    std::cout << "[y] receve " << buffer << std::endl;  }  channel->BasicCancel(consumer_tag);  //关闭消费者。}

注意:代码编译时需要加参数 -lSimpleAmqpClient
如Send.cpp的编译命令为:

g++ Send.cpp -o Send -lSimpleAmqpClient

即可生成可执行文件Send

相关链接

rabbitmq-c++(SimpleAmqpClient) 笔记代码系列:

rabbitmq-c++(SimpleAmqpClient) 笔记代码一
rabbitmq-c++(SimpleAmqpClient) 笔记代码二
rabbitmq-c++(SimpleAmqpClient) 笔记代码三
rabbitmq-c++(SimpleAmqpClient) 笔记代码四
rabbitmq-c++(SimpleAmqpClient) 笔记代码五
rabbitmq-c++(SimpleAmqpClient) 笔记代码六

RabbitMQ 学习笔记系列:

RabbitMQ 学习笔记(一):简单介绍及”Hello World”
RabbitMQ 学习笔记(二):work queues
RabbitMQ 学习笔记(三):Publish/Subscribe
RabbitMQ 学习笔记(四):Routing
RabbitMQ 学习笔记(五):Topics
RabbitMQ 学习笔记(六):RPC

原创粉丝点击