这里使用了apache的Nms.ActiveMQ
安装完之后,发现一个问题,只支持netframework4.6
后来发现选错了包,换一个支持netcore的包
**********************************上面使用后,发现了一个非常大的问题,一到调用就失败***************
由于ActiveMQ官方支持的是dotnet版本,而netcore只需要拿到源码,直接编译一下,就可以使用了。所以,我准备自己编译一个netcore的版本,供自己使用。说干就干。。。
首先下载源码:
一共有两个:
https://github.com/apache/activemq-nms-api
https://github.com/apache/activemq-nms-openwire
然后新建两个工程:
然后直接把源代码拷贝进行
nms-api 对应ApacheNMS
nms-openwire 对应ActiveMq
编译会出现一个问题:
这个直接去掉即可
另外,需要引用一个netcore的库
编译直接通过了:
写了一个demo如下:
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using Apache.NMS.Util;
using System;
namespace ActiveMqTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
String QueuesNameESF = "queue://test.log";
Uri _uri = new Uri(String.Concat("activemq:tcp://192.168.227.1:61616"));
IConnectionFactory factory = new ConnectionFactory(_uri);
using (IConnection conn = factory.CreateConnection("admin", "manager"))
{
using (ISession session = conn.CreateSession())
{
IDestination destination = SessionUtil.GetDestination(session, QueuesNameESF);
using (IMessageProducer producer = session.CreateProducer(destination))
{
conn.Start();
//可以写入字符串,也可以是一个xml字符串等
ITextMessage request = session.CreateTextMessage("messsage");
producer.Send(request);
}
}
}
}
}
}
发送成功如下:
为了方便学习与交流,代码上传如下:
https://gitee.com/g0415shenw/dotnetTest/tree/master/ActiveMqTest