在.NET下的使用ActiveMQ

来源:互联网 发布:gif动态图软件 编辑:程序博客网 时间:2024/06/05 19:26

项目结构:

这里写图片描述

ActiveMQRecive下Program.cs

using Apache.NMS;using Apache.NMS.ActiveMQ;using Apache.NMS.Util;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ActiveMQRecive{    class Program    {        static void Main(string[] args)        {            try            {                #region 消息消费者                string queuesName = "myQueue";                Uri _uri = new Uri(String.Concat("activemq:tcp://localhost:61616?wireFormat.maxInactivityDuration=0"));                IConnectionFactory factory = new ConnectionFactory(_uri);                // IConnectionFactory factory = new ConnectionFactory();                using (IConnection conn = factory.CreateConnection("admin", "manager"))                {                    using (ISession session = conn.CreateSession())                    {                        conn.Start();                        IDestination destination = SessionUtil.GetDestination(session, queuesName);                        using (IMessageConsumer consumer = session.CreateConsumer(destination))                        {                            consumer.Listener += (IMessage message) =>                            {                                ITextMessage msg = (ITextMessage)message;                                Console.WriteLine("接收消息:" + msg.Text);                            };                            // consumer.Listener += new MessageListener(consumer_Listener);                            Console.ReadLine();                        }                    }                }                #endregion            }            catch (Exception ex)            {                Console.WriteLine(ex.Message);            }        }        static void consumer_Listener(IMessage message)        {            try            {                ITextMessage msg = (ITextMessage)message;                Console.WriteLine("接收:" + msg.Text);            }            catch (Exception ex)            {                Console.WriteLine(ex.Message);            }        }    }}

ActiveMQSend下Program.cs

using Apache.NMS;using Apache.NMS.ActiveMQ;using Apache.NMS.Util;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ActiveMQSend{    class Program    {        static void Main(string[] args)        {            string queuesName = "myQueue";            Uri _uri = new Uri(String.Concat("activemq:tcp://localhost:61616"));            IConnectionFactory factory = new ConnectionFactory(_uri);            //IConnectionFactory factory = new ConnectionFactory();            using (IConnection conn = factory.CreateConnection("admin", "manager"))            {                using (ISession session = conn.CreateSession())                {                    IDestination destination = SessionUtil.GetDestination(session, queuesName);                    using (IMessageProducer producer = session.CreateProducer(destination))                    {                        conn.Start();                        //可以写入字符串,也可以是一个xml字符串等                        for (int i = 0; i < 100; i++)                        {                            ITextMessage request = session.CreateTextMessage("新新messsage" + i);                            producer.Send(request);                            Console.WriteLine("发送新新消息:" + i);                            Thread.Sleep(1000);                        }                    }                }            }        }    }}

运行结果如图:

这里写图片描述


这里写图片描述

原创粉丝点击