消息队列(微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为消息),然后把它保存至一个系统公用空间的消息队列(消息队列)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。
上面一段呢,是百度百科的解释,我这里就不讲理论了,许多博客讲的都比我讲的好,我也只是照虎画猫,就讲一个简单的例子,供自己学习使用。如果对各位有帮助那是最好不过了。
首先我们先在自己电脑上安装MSMQ服务。具体步骤不多讲(赢得7,赢得8):控制面板——程序和功能,打开或关闭窗户功能,如下图,然后选中点击确定,让他安装完就可以了。
第二步:打开VS创建项目吧,我这个演示很简单。
- <李>
配置MSMQ路径,我这里用的是专用队列,我的路径如下:@”。\ \ panzi美元私人”;这里呢先不做解释,这个路径是专用队列的路径方式,。代表本机,当然也可以连接服务器的队列。
李> <李>创建MessageQueue对象(引用系统。消息传递命名空间)代码如下:
,,,,,,,,,,,,//判断队列是否已经存在,不存在就创建
,,,,,,,,,,,,,,, if (! MessageQueue.Exists (QueuePath))
,,,,,,,,,,,,,,, {
,,,,,,,,,,,,,,,,,,, MessageQueue.Create (QueuePath);
,,,,,,,,,,,,,,,}
,,,,,,,,,,,,,,, return new MessageQueue (QueuePath);
调用队列的发送方法和接收方法就可以了,是不是很简单呢。
,, public void 发送(object 味精) ,,,,,,,{ ,,,,,,,,,,,var queue =, GetBiQueue (); ,,,,,,,,,,,queue.Send(味精); ,,,,,,,}李> <李>
, public object ReceiveAndRemove () ,,,,,,,{ ,,,,,,,,,,,var queue =, GetBiQueue (); ,,,,,,,,,,,var message =, queue.Receive (); ,,,,,,,,,,,return message.Body; ,,,,,,,}李> <李>
上边的代码看不懂没关系,后边会有演示下载,另外这个只是简单入门小例子,真正项目使用肯定不是这么简单啦。我们看看运行成果吧
那么我们接收一下这条消息:(这是我发的信息),已经接收到了,那么看看队列里面还有没有这条数据呢?再看一下已经没有了(不截图了)。如果想让队列数据继续保存用什么方法呢,可以用
queue.Peek ();这样,数据能获取到,而且不会删除队列里的数据
李>
好了,一个简单的MSMQ演示就完成了,可能讲的不是很明白,当然啦,我这个暂时不是教学目的,是自己的个人总结,如果想学习,还是需要看博客园和其他一些大神的博客啦。
下一篇就要介绍一下WCF如何和MSMQ结合的,不得不说WCF真牛逼。~ ~