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
- rabbitmq-c++(SimpleAmqpClient) 笔记代码一
- rabbitmq-c++(SimpleAmqpClient) 笔记代码
- rabbitmq-c++(SimpleAmqpClient) 笔记代码二
- rabbitmq-c++(SimpleAmqpClient) 笔记代码三
- rabbitmq-c++(SimpleAmqpClient) 笔记代码四
- rabbitmq-c++(SimpleAmqpClient) 笔记代码五
- rabbitmq-c++(SimpleAmqpClient) 笔记代码六
- Rabbitmq+SimpleAmqpClient--之vs2010编译
- linux下安装c++ rabbitmq客户端SimpleAmqpClient
- rabbitmq学习笔记一
- RabbitMQ 笔记一
- C代码笔记(一)
- 【rabbitmq】解决SimpleAmqpClient创建连接时阻塞的问题
- linux下rabbitmq SimpleAmqpClient客户端的使用的简单例子
- RabbitMQ(一) 入门代码 Helloworld
- RabbitMQ学习笔记(一)
- rabbitMq使用笔记一:Window下安装使用RabbitMQ
- rabbitMq使用笔记一:Window下安装使用RabbitMQ
- caffe踩过的一些坑
- mysql 的substring_index()函数
- Problem J. Journey to the “The World’s Start”
- lua-3 字符串
- Java集合
- rabbitmq-c++(SimpleAmqpClient) 笔记代码一
- 实现一个简单的Promise
- 《程序员面试金典》合法括号判断
- javaweb--Tomcat>>基于windows 系统源码的编译和部署
- 前端4篇
- C++类中成员变量的初始化总结
- JAVA中的反射机制
- 人民币金额打印
- JVM虚拟机个人总结(一)