C# ActiveMQ发送实体类消息(生产者部分)

1.下载ActiveMQ
官方网站下载地址:http://activemq.apache.org/

2.运行ActiveMQ
解压缩apache-activemq-5.10.0-bin.zip,然后双击apache-activemq-5.10.0\bin\win32\activemq.bat运行ActiveMQ程序。

启动ActiveMQ以后,可以使用浏览器登陆:http://localhost:8161/admin/验证, 默认用户名是:admin 密码是:admin

(前提是配置好好JDK环境,能打开console代表MQ运行成功)
C# ActiveMQ发送实体类消息(生产者部分)_第1张图片
6.创建mq生产者工程,并nuget安装Apache.NMS.dll以及Apache.NMS.ActiveMQ.dll两个类库。
生产者代码如下:

//消息体实体类
public class GPSData
    {
        /// 
        ///     E东经,W西经
        /// 
        public string LONG_WE { get; set; }

        /// 
        ///     S南纬,N北纬
        /// 
        public string LAT_NS { get; set; }

        /// 
        ///     经度
        /// 
        public decimal LONGITUDE { get; set; }

        /// 
        ///     纬度
        /// 
        public decimal LATITUDE { get; set; }
    }
    
//建立MQ连接以及发送MQ消息
private void SendMq()
        {
            try
            {
                //Create the Connection Factory
                IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");
                using (IConnection connection = factory.CreateConnection())
                {
                	//定义要发送的类
                    GPSData message = new GPSData();                    
                    message .LATITUDE =47.888;
                    message .LONGITUDE = 122.689;
                    message .LONG_WE = "E";
                    message .LAT_NS = "N";                           
                    //创建 Session
                    using (ISession session = connection.CreateSession())
                    {
                        //定义topic名
                        IMessageProducer prod = session.CreateProducer(
                            new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("test"));
                        //对发送的类进行处理,
                        var str = JsonConvert.SerializeObject(message);
                        var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message));
                        //将转化好的消息赋值给msg
                        IMessage msg = prod.CreateBytesMessage(bytes);
                        //发送消息
                        prod.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
                        System.Threading.Thread.Sleep(5000);

                    }
                }
                Console.ReadLine();
            }
            catch (System.Exception e)
            {
                Console.WriteLine("{0}", e.Message);
                Console.ReadLine();
            }
        }

以上,就可以将GpsData类型的消息发送到MQ上,供消费者消费。

你可能感兴趣的:(C#中activeMQ应用)