.net客户端调用activeMQ代码

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
ExpandedBlockStart.gifContractedBlock.gif
{
    
public class MQ
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <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)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            IConnectionFactory factory 
= new ConnectionFactory(new Uri("tcp://" + mqIp));

            
using (IConnection connection = factory.CreateConnection(mqUsername, mqPassword))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                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
ExpandedBlockStart.gifContractedBlock.gif
{
    
class Program
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
static void Main(string[] args)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
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);

        }

    }

}

 -------------20100107----------
改进调用类
IMessageProducer和ISession都继承了IDisposable接口,所以创建对象producer和session时使用Using。

     public   static   void  SendMessage( string  ip,  string  mqName,  string  mqUsername,  string  mqPassword,  string  userID,  string  subsysID,  int  cent,  string  summary)
    {
            IConnectionFactory factory 
=   new  ConnectionFactory( new  Uri( " tcp:// "   +  ip));
            
using  (IConnection connection  =  factory.CreateConnection(mqUsername, mqPassword))
            {
                
using  (ISession session  =  connection.CreateSession())
                {
                    ActiveMQQueue destination 
=  (ActiveMQQueue)session.GetQueue(mqName);
                    
using  (IMessageProducer producer  =  session.CreateProducer(destination))
                    {
                        producer.Persistent 
=   true ;
                        IMapMessage request 
=  session.CreateMapMessage();
                        request.Body.SetString(
" userID " , userID);
                        request.Body.SetString(
" subsysID " , subsysID);
                        request.Body.SetInt(
" cent " , cent);
                        request.Body.SetString(
" summary " , summary);
                        producer.Send(destination, request);
                    }
                }
            }

    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值