ActiveMQ c++ demo
时间: 2024-06-04 14:05:20 浏览: 141
ActiveMQ的demo
ActiveMQ是一款流行的开源消息中间件,支持多种协议和编程语言。ActiveMQ的C++客户端提供了一个简单易用的API,可以让C++程序员方便地使用ActiveMQ。下面是一个简单的ActiveMQ C++ demo:
```c++
#include <activemq/core/ActiveMQConnectionFactory.h>
#include <activemq/library/ActiveMQCPP.h>
#include <cms/Connection.h>
#include <cms/ConnectionFactory.h>
#include <cms/ExceptionListener.h>
#include <cms/Message.h>
#include <cms/Session.h>
#include <iostream>
using namespace cms;
int main(int argc, char* argv[]) {
try {
// 初始化ActiveMQ
activemq::library::ActiveMQCPP::initializeLibrary();
// 创建连接工厂
auto factory =
new activemq::core::ActiveMQConnectionFactory("tcp://localhost:61616");
// 创建连接
auto connection = factory->createConnection();
connection->start();
// 创建会话
auto session = connection->createSession(Session::AUTO_ACKNOWLEDGE);
// 创建目的地
auto destination = session->createQueue("testqueue");
// 创建生产者
auto producer = session->createProducer(destination);
// 创建消息
auto message = session->createTextMessage("Hello, ActiveMQ!");
// 发送消息
producer->send(message);
// 创建消费者
auto consumer = session->createConsumer(destination);
// 接收消息
auto receivedMessage = consumer->receive(1000);
if (receivedMessage != nullptr) {
std::cout << "Received message: " << dynamic_cast<TextMessage*>(receivedMessage)->getText() << std::endl;
delete receivedMessage;
}
// 关闭连接
connection->close();
} catch (CMSException& e) {
std::cerr << "Caught CMSException: " << e.getMessage() << std::endl;
}
// 关闭ActiveMQ
activemq::library::ActiveMQCPP::shutdownLibrary();
return 0;
}
```
这个demo演示了如何使用ActiveMQ C++客户端发送和接收消息。它首先创建了一个连接工厂并使用它创建了一个连接。然后它创建了一个会话和一个目的地(这里使用了一个队列)。接着它创建了一个生产者并使用它发送了一条消息。接下来它创建了一个消费者并使用它接收了这条消息。最后它关闭了连接并关闭了ActiveMQ。
阅读全文