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运行成功)
同时下载.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); }
C# ACtiveMQ 收发数据的更多相关文章
- dsp28377控制DM9000收发数据——第三版程序,通过外部引脚触发来实现中断接受数据,优化掉帧现象
//-------------------------------------------------------------------------------------------- - //D ...
- dsp28377控制DM9000收发数据——第二版程序,能够实现手术功能,但是容易掉帧;使用读取中断寄存器的方式判断中断
G:\controlSUITE\device_support\F2837xD\v180\F2837xD_examples_Cpu1\emif1_16bit_asram\cpu01\emif1_16bi ...
- dsp28377控制DM9000收发数据
首先感谢上一篇转载文章的作者给出的参考,下面是一些自己在调试过程中的一些步骤: 首先把代码贴上来: //------------------------------------------------ ...
- boost.asio与boost.log同时使用导致socket不能正常收发数据
现象: 1. 没有使用boost.log前能正常收发数据 2.加入boost.log后async_connect没有回调 fix过程: 1. gdb调试发现程序block在pthread_timed_ ...
- iOS开发之音频口通信-通过方波来收发数据
之前做过的项目有需要通过音频口通信用方波来收发数据,由于这方面的资料比较少,下面就介绍下其原理,希望能给大家帮助. 一. 音频通信简介大家应该都知道支付宝声波支付和拉卡拉吧,它们都是利用手机的音频口( ...
- STM32F4 SPI2初始化及收发数据【使用库函数】
我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮 ...
- 【AT91SAM3S】串口UART初始化及收发数据
SAM3S中的UART串口是一个两线异步收发器.这个串口能用来通信或者跟踪.有两个DMA通道与UART串口关联,可通过使用DMA处理串口传输以节省CPU时间. SAM3S4C中有两个UART.与外设引 ...
- 【NodeJs】使用TCP套接字收发数据的简单实例
因为TCP协议是流协议,在收发数据的时候会有粘包的问题.本例使用自定义的SPtcp封包协议对TCP数据再进行一次封装,解决了粘包问题. 注:其性能仍有待优化.优化方向:使用TCP自带的接收窗口缓存. ...
- STM32F407的串口采用DMA收发数据
源:STM32F407的串口采用DMA收发数据
随机推荐
- boost--日期处理
1.timer 不同于系统函数的timer()一般生成一个定时器,boost中的timer是一个计时器,以秒为单位,最小精度为毫秒,使用需要包含头文件"boost\timer.hpp&quo ...
- JavaScript基础视频教程总结(001-010章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- div辅助线【完整版】
## <html> <head> <link rel="stylesheet" type="https://cdn.bootcss.com/ ...
- Hibernate 和 Mybatis 两者相比的优缺点
1.开发上手难度 hibernate的真正掌握(封装的功能和特性非常多)要比Mybatis来得难. 在真正产品级应用上要用Hibernate,不仅对开发人员的要求高,hibernate往往还不适合(多 ...
- HTML <frameset>
好久不用 <frameset>确实有点手生了,直接上代码看效果吧,简单易懂 <!DOCTYPE html> <html> <head> <meta ...
- 文件描述符fd、文件指针fp和vfork()
1. fd:在形式上是一个非负整数.实际上他是一个索引值.指向kernal为每一个进程所维护的该进程打开文件的记录表. 当程序打开一个文件或者创建一个新文件的时候kernal向进程返回一个文件描述符. ...
- [转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别
转:http://blog.sina.com.cn/s/blog_66f725ba0101bw8i.html 关于语音识别的声学模型训练方法已经是比较成熟的方法,一般企业或者研究机构会采用HTK工具包 ...
- mybatis 控制台打印sql语句
其实很简单,打印SQL只需要加一个setting就可以了.亲测可用. mybatis-config.xml: <settings> <setting name=&quo ...
- HTML5之FileReader文件读取接口
FileReader用来把文件读入内存,并且读取文件中的数据.FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据. 1.FileReade ...
- Testing - 软件测试的思维和技巧
01 - 测试员不仅仅是执行测试用例,对实际结果和预期结果进行比较 测试员其实是参与了设计和执行测试的各个环节:测试架构,环境搭建,测试用例等等,并确定预期输出. 大多数设计测试都是基于业务流程和原理 ...