使用ActiveMQ进行C++与C#的通信

该系列文章介绍如何通过ActiveMQ在C++和C#控制台项目之间通信。

关于ActiveMQ的介绍可以参考《深入浅出ActiveMQ》,平台搭建可以参考《Activemq 平台搭建与C#示列》,两者之间有交叉内容,这里我以ActiveMQ之user-guide翻译为开篇,如有纰漏、错误敬请指正。

ActiveMQ入门

从这篇文章中你可以对Apache ActiveMQ有个概览并开始尝试使用它。

1、运行代理

从ActiveMQ的二进制分发包,你可以通过bin\activemq命令启动ActiveMQ。如果你使用的是Windows系统,输入

cd bin
activemq.bat start

如果你使用的是类Unix系统,输入

./bin/activemq console

可以在后台启动ActiveMQ代理。

提示:如果你单单输入bin\activemq命令,而不带任何参数,那么会打印出ActiveMQ的使用方法。

通过ctrl + c可以停止ActiveMQ进程。

2、在后台运行代理

在类Unix系统中,通过bin\activemq命令能以后台进程启动ActiveMQ代理,输入

./bin/activemq start

命令在后台启动代理。ActiveMQ代理会将日志写入data/activemq.log文件。

3、终止代理

通过bin/activemq命令可以终止ActiveMQ代理。在Windows系统下输入

cd bin
activemq.bat stop

在类Unix系统下输入

./bin/activemq stop

可以终止ActiveMQ代理。

4、访问web会话

在浏览器中输入http://0.0.0.0:8161/admin可以访问ActiveMQ web会话。

在第一次访问web会话时,ActiveMQ代理会要求登录权限,缺省的账户名和密码是admin/admin,你可以在conf/jetty-real.properties文件中修改配置。

5、访问web demos

通过下面的步骤,你可以启动ActiveMQ的demos:在Windows系统中,输入

cd bin
activemq.bat console xbean:examples/conf/activemq-demo.xml

在类Unix系统中,输入

./bin/activemq console xbean:examples/conf/activemq-demo.xml

在浏览器中输入http://0.0.0.0:8161/demo可以访问ActiveMQ附带的web demos。

同样地,在第一次访问web会话时,ActiveMQ代理会要求登录权限,缺省的账户名和密码是admin/admin,你可以在conf/jetty-real.properties文件中修改配置。

6、运行例子程序

为了运行生产者/消费者模型(producer/consumer),需要安装Java和Ant环境。

6.1 安装Ant

例子程序依赖Ant环境。尽管在Ant网站上有更多对Ant详细的介绍,但是本质上配置如下环境变量:

JAVA_HOME:必须指向JDK安装目录,这样以来$JAVA_HOME/bin包含java可执行程序,$JAVA_HOME/lib包含jar包;

ANT_HOME:必须指向Apache Ant(http://ant.apache.org)安装目录;

最后上面内容添加到PATH环境变量中。

为了测试上面内容,输入

java -version
cd examples/openwire/swissarmy
ant -version

6.2 运行生产者/消费者例子

一旦你安装了Java和Ant环境,你可以运行命令

cd examples/openwire/swissarmy
ant consumer

在另一个控制台运行

cd examples/openwire/swissarmy
ant producer

你也可以通过命令参数的形式指定指定确切的URL地址,例如:

7、更多了解

通过http://activemq.apache.org你可以了解更多Apache ActiveMQ的细节,以及获取入门指南。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值