基本信息
源码名称:c# mq queue收发实例
源码大小:1.45M
文件格式:.zip
开发语言:C#
更新时间:2019-12-19
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
c# mq queue收发实例,缺少相关数据库脚本,但是可以参考其思路



消费端:



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.SqlClient;
namespace mqConsumer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitConsumer();
        }
        public string strconn = System.Configuration.ConfigurationSettings.AppSettings["dsn"];

        public void InitConsumer()
        {
            //创建连接工厂
            IConnectionFactory factory = new ConnectionFactory(textBox1.Text );
            //通过工厂构建连接
            IConnection connection = factory.CreateConnection();
            //这个是连接的客户端名称标识
            connection.ClientId = "firstQueueListener";
            //启动连接,监听的话要主动启动连接
            connection.Start();
            //通过连接创建一个会话
            ISession session = connection.CreateSession();
            //通过会话创建一个消费者,这里就是Queue这种会话类型的监听参数设置
           // IMessageConsumer consumer = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("firstQueue"), "filter='demo'");
            IMessageConsumer consumer = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("bizInfTopic"), "firstQueueListener"  );
            
            //注册监听事件
            consumer.Listener = new MessageListener(consumer_Listener);
            //connection.Stop();
            //connection.Close();  

        }
        void consumer_Listener(IMessage message)
        {
            ITextMessage msg = (ITextMessage)message;
            //异步调用下,否则无法回归主线程
            tbReceiveMessage.Invoke(new DelegateRevMessage(RevMessage), msg);

        }
        public delegate void DelegateRevMessage(ITextMessage message);

        public void RevMessage(ITextMessage message)
        {
            tbReceiveMessage.Text = string.Format(@"接收到:{0}{1}", message.Text, Environment.NewLine);
            { return; }