• .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
    {
        
    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);

            }

        }

    }

     -------------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);
                        }
                    }
                }

        }



  • 相关阅读:
    深入理解Java:注解(Annotation)自定义注解入门
    Java基础之理解Annotation
    junit常用注解详细说明
    能判断是电脑端还是手机端的javascript
    Ext.js多文件选择上传,
    StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
    FileItem类的常用方法(关于文件上传的)
    js保留小数点后面几位的方法
    如何将div中的内容设置为空同时还要保留div本身
    使用html中的<input>标签上传多个文件(转)
  • 原文地址:https://www.cnblogs.com/tenghoo/p/activeMQ_client.html
Copyright © 2020-2023  润新知