C# ActiveMQ使用demo

发布时间 2023-04-06 11:18:51作者: 阿飞飞阿飞

安装流程在上一篇

引入包

在nuget中下载安装Apache.NMS.ActiveMQ 如图 收发都要

 

引入

using Apache.NMS;
using Apache.NMS.ActiveMQ;

发信方

IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616");

            // 创建连接
            using (IConnection connection = factory.CreateConnection())
            {
                // 开启连接
                connection.Start();

                // 创建会话
                using (ISession session = connection.CreateSession())
                {
                    // 创建目的地(队列或主题)
                    IDestination destination = session.GetQueue("testqueue");

                    // 创建生产者
                    using (IMessageProducer producer = session.CreateProducer(destination))
                    {
                        // 创建消息
                        ITextMessage message = session.CreateTextMessage("Hello, ActiveMQ!" + DateTime.Now.ToString());

                        // 发送消息
                        producer.Send(message);
                    }
                }
                connection.Close();
            }

收信方

此处创建的是控制台程序demo 入图

internal class Program
    {

        public static void mq_load()
        {

            // 创建连接工厂
            IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616");

            // 创建连接
            using (IConnection connection = factory.CreateConnection())
            {
                // 创建会话
                using (ISession session = connection.CreateSession())
                {
                    // 创建目的地
                    IDestination destination = session.GetQueue("testqueue");

                    // 创建消费者
                    IMessageConsumer consumer = session.CreateConsumer(destination);

                    // 设置消息监听器
                    consumer.Listener += new MessageListener(OnMessage);

                    // 启动连接
                    connection.Start();

                    // 等待消息
                    Console.ReadLine();
                }
            }

        }

        static void OnMessage(IMessage message)
        {
            if (message is ITextMessage textMessage)
            {
                // 处理消息
                Console.WriteLine("Received message: " + textMessage.Text);
            }
        }

        static void Main(string[] args)
        {
            mq_load();
        }
    }