zoukankan      html  css  js  c++  java
  • c# ActiveMQ 类

    using System;
    using System.Collections.Generic;
    using System.Text;

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


    namespace yangguang.weixinandsogou
    {
    public struct Property
    {
    public string name;
    public string value;
    }

    class MQ
    {
    private string URI;
    private string TOPIC;
    private string USERNAME;
    private string PASSWORD;
    private IConnectionFactory factory;
    private IConnection connection;
    private ISession session;
    private IMessageProducer producer;

    public string uri
    {
    set { URI = value; }
    get { return URI; }
    }

    public string topic
    {
    set { TOPIC = value; }
    get { return TOPIC; }
    }

    public string username
    {
    set { USERNAME = value; }
    }

    public string password
    {
    set { PASSWORD = value; }
    }

    public MQ()
    {
    producer = null;
    factory = null;
    connection = null;
    session = null;
    }

    ~MQ()
    {
    if (producer != null)
    {
    producer.Dispose();
    }

    Close();
    }

    public void Start()
    {
    factory = new ConnectionFactory(URI);

    if (USERNAME != "")
    {
    connection = factory.CreateConnection(USERNAME, PASSWORD);
    }
    else
    {
    connection = factory.CreateConnection();
    }
    connection.Start();
    session = connection.CreateSession();
    }

    public void Close()
    {
    if (session != null)
    {
    session.Close();
    }
    if (connection != null)
    {
    connection.Stop();
    connection.Close();
    }
    }

    public void CreateProducer(bool blnTopic, string strTopicName)
    {
    if (blnTopic)
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName));
    }
    else
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName));
    }
    }

    public void CreateProducer(bool blnTopic)
    {
    if (blnTopic)
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(TOPIC));
    }
    else
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(TOPIC));
    }
    }

    public IMessageConsumer CreateConsumer(bool blnTopic, string strTopicName)
    {
    if (blnTopic)
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName));
    }
    else
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName));
    }
    }

    public IMessageConsumer CreateConsumer(bool blnTopic, string strTopicName, string strSelector)
    {
    if (strSelector == "")
    {
    // GlobalFunction.MsgBox("MQ selector不能为空");
    return null;
    }

    if (blnTopic)
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName), strSelector, false);
    }
    else
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName), strSelector, false);
    }
    }

    public void SendMQMessage(string strText)
    {
    ITextMessage msg = producer.CreateTextMessage();
    msg.Text = strText;
    producer.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
    }

    public void SendMQMessage(string strText, List<Property> lstProperty)
    {
    try
    {
    ITextMessage msg = producer.CreateTextMessage();
    msg.Text = strText;

    foreach (Property prop in lstProperty)
    {
    msg.Properties.SetString(prop.name, prop.value);
    }
    producer.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
    }
    catch (System.Exception ex)
    {
    //GlobalFunction.MsgBoxException(ex.Message, "SendMQMessage");
    }
    }
    }
    }

  • 相关阅读:
    error C2065: “SHCNE_DELETE”: 未声明的标识符
    error C2872: ‘ofstream’ : ambiguous symbol
    error C2065: ‘__in’ : undeclared identifier
    LINK : fatal error LNK1561: 必须定义入口点
    VS2010提示error TRK0002: Failed to execute command
    js怎么获取一个单位为rem的元素真实宽/高度?
    将时间转化为几秒前 几分钟前 几小时前...
    uni-app picker 组件实现二级联动?
    uni-app scroll-view 点击实现元素居中?
    初始化CSS样式
  • 原文地址:https://www.cnblogs.com/bigdata007/p/4955830.html
Copyright © 2011-2022 走看看