C# ACtiveMQ 收发数据
2018-06-17 19:01:45来源:未知 阅读 ()
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运行成功)
同时下载.net版Dll:Apache.NMS-1.6.0-bin.zip和Apache.NMS.ActiveMQ-1.6.4-bin.zip
都从这里下载:http://archive.apache.org/dist/activemq/apache-nms/1.6.0/
- 引用ActiveMQ类库:
(1)Apache.NMS.dll路径:\Apache.NMS.ActiveMQ-1.7.2-bin\lib\Apache.NMS\net-3.5
(2)Apache.NMS.ActiveMQ.dll路径:\Apache.NMS.ActiveMQ-1.7.2-bin\build\net-3.5\debug
3.MQ例子(生产者)
public Form1() { InitializeComponent(); InitProducer(); } private IConnectionFactory factory; public void InitProducer() { try { //初始化工厂 factory = new ConnectionFactory("tcp://localhost:61616"); } catch { lbMessage.Text = "初始化失败"; } } private void button1_Click(object sender, EventArgs e) { //建立工厂连接 using (IConnection connection = factory.CreateConnection()) { //通过工厂连接创建Session会话 using (ISession session = connection.CreateSession()) { //通过会话创建生产者,方法里new出来MQ的Queue IMessageProducer prod = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("firstQueue")); //创建一个发送消息的对象 ITextMessage message = prod.CreateTextMessage(); XmlDocument Doc = new XmlDocument(); Doc.LoadXml("<?xml version='1.0' encoding='UTF-8'?><flightroute><flight><flightinfo><acid>CCA1501</acid><runway>13L</runway><gate>N115</gate><cockpitdirection>180</cockpitdirection><deparr>DEP</deparr></flightinfo></flight</flightroute>"); message.Text = Doc.InnerXml; //给这个消息对象赋实际的消息 //设置消息对象的属性,是Queue的过滤条件也是P2P的唯一指定属性 message.Properties.SetString("filter","demo"); prod.Send(message, MsgDeliveryMode.NonPersistent, MsgPriority.Normal, TimeSpan.MinValue); lbMessage.Text = "发送成功!"; Text.Text = ""; Text.Focus(); } } }
public Form2() { InitializeComponent(); InitConsumer(); } public void InitConsumer() { //创建连接工厂 IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616"); //通过工厂创建连接 IConnection connection = factory.CreateConnection(); //连接服务器端的标识 connection.ClientId = "firstQueueListener"; //启动连接 connection.Start(); //通过连接创建对话 ISession session = connection.CreateSession(); //通过会话创建一个消费者 IMessageConsumer consumer = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("firstQueue"),"filter = 'demo'"); //注册监听事件 consumer.Listener += new MessageListener(consumer_Listener); } void consumer_Listener(IMessage message) { ITextMessage msg = (ITextMessage)message; ReceiveMessage.Invoke(new DelegateRevMessage(RevMessage), msg); } public delegate void DelegateRevMessage(ITextMessage message); public void RevMessage(ITextMessage message) { ReceiveMessage.Text += string.Format(@"接收到:{0}{1}", message.Text, Environment.NewLine); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:[编程] TCP协议概述
下一篇:GridView控件的属性、事件
- FireDAC 下的 Sqlite [3] - 获取数据库的基本信息【转载自万 2020-05-26
- Delphi中DBGrid 表中双击直接修改数据(02) 2020-03-28
- JSON文本文件导入到Sqlite3数据库 2020-03-02
- TChart-数据编辑(TChartListBox,TeeCommander) 2020-02-21
- Intraweb IIS发布,数据连接问题 2019-12-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash