.net客户端调用activeMQ代码

来源:互联网 发布:程序员如何包装简历 编辑:程序博客网 时间:2024/05/01 07:45

1、添加对 Apache.NMS Apache.NMS.ActiveMQ引用;

  ActiveMQ .NET   http://activemq.apache.org/nms/index.html

2、在webconfig中添加调用MQ所需的MQIP,MQName,MQUserName,MQPassword;

  <appSettings>
    
<add key="MQIP" value="XX" />
    
<add key="MQName" value="XX" />
    
<add key="MQUsername" value="XX" />
    
<add key="MQPassword" value="XX" />
  
</appSettings>

3、创建一个通用的调用类。

    

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


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

namespace Lee.Client
{
    
public class MQ
    
{
        
/// <summary>
        
/// 发送消息
        
/// </summary>
        
/// <param name="mqIp">ip地址</param>
        
/// <param name="mqName">mq名称</param>
        
/// <param name="mqUsername">用户名</param>
        
/// <param name="mqPassword">密码</param>
        
/// <param name="strParam">消息参数</param>
        
/// <param name="intParam">消息参数</param>

        public static void SendMessage(string mqIp, string mqName, string mqUsername, string mqPassword, string strParam, int intParam)
        
{
            IConnectionFactory factory 
= new ConnectionFactory(new Uri("tcp://" + mqIp));

            
using (IConnection connection = factory.CreateConnection(mqUsername, mqPassword))
            
{
                Console.WriteLine(
"创建一个连接!");
                ISession session 
= connection.CreateSession();
                ActiveMQQueue queue 
= (ActiveMQQueue)session.GetQueue(mqName);
                IMessageProducer producer 
= session.CreateProducer(queue);
                producer.Persistent 
= true;

                
// 发送消息
                IMapMessage request = session.CreateMapMessage();
                request.Body.SetString(
"strParam", strParam);//具体参数
                request.Body.SetInt("intParam", intParam);
                producer.Send(queue, request);
            }


        }

    }

}

4、调用

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

namespace Lee.Client
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            
string mqIp = System.Configuration.ConfigurationManager.AppSettings["MQIP"].ToString();
            
string mqName = System.Configuration.ConfigurationManager.AppSettings["MQName"].ToString();
            
string mqUsername = System.Configuration.ConfigurationManager.AppSettings["MQUserName"].ToString();
            
string mqPassword = System.Configuration.ConfigurationManager.AppSettings["MQPassword"].ToString();

            MQ.SendMessage(mqIp, mqName, mqUsername, mqPassword,
"字符型参数",0);

        }

    }

}

 

原创粉丝点击