MSMQ



      “消息队列”是 Microsoft 的消息处理技术,它在任何安装 Microsoft Windows 的计算机组合中,为任何应用程序提供消息处理和消息队列功能,无论这些计算机是否在同一个网络上或者是否同时联机。

 

 消息队列使用步骤:

1.Micorsoft开启消息队列服务

 

打开控制面板---程序---程序功能----启动或关闭windows功能---选择“Microsoft Message Queue(MSMQ)服务器”的勾选。


 MSMQ_第1张图片


2.配饰消息队列服务---建立通道

 使用快捷键Win+X,选择计算机管理,在服务和应用程序中找到消息队列。


 MSMQ_第2张图片


     打开消息队列,选择专有队列,右击新建—专有队列,如图:

     

     输入队列名称:例如:TransportMessage


 MSMQ_第3张图片


3.代码实现原理:

在发送方A:

1) 建立队列管理器

2) 定义本地传输队列

3) 创建远程队列

4) 定义发送通道

在接收方B:

1) 建立队列管理器

2) 定义本地队列

3) 创建接收通道

 

代码Demo:

建立两个WindowsFormsApplication1和2,分别建立窗体,一为接受方,一为发送方。


 MSMQ_第4张图片

发送方代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
           InitializeComponent();
        }
        //发¤¡é送¨ª端?
        private voidbutton1_Click(object sender, EventArgs e)
        {
            // 打䨰开a通ª¡§道̨¤,ê?严?谨¡Â点Ì?应®|该?首º¡Á先¨¨判D断?是º?否¤?存ä?在¨²改?通ª¡§道̨¤,ê?如¨?否¤?则¨°重?新?创ä¡ä建¡§。¡ê
 
           System.Messaging.MessageQueue queue =new System.Messaging.MessageQueue(".\\Private$\\TransportMessage");
 
 
            // Create message:êo创ä¡ä建¡§消?息¡é队¨®列¢D
 
           System.Messaging.Message message = new System.Messaging.Message();
 
            //获?取¨?消?息¡é
           message.Body = textBox1.Text.Trim();
 
            //序¨°列¢D化¡¥消?息¡é
           message.Formatter = newSystem.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
 
 
            // 发¤¡é送¨ª消?息¡é
 
           queue.Send(message);
 
        }
 
     
    }
}
 


 

接受方:

MSMQ_第5张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
           InitializeComponent();
        }
        //接¨®受º¨¹端?
        private voidbutton1_Click(object sender, EventArgs e)
        {
            // Open queue:êo打䨰开a通ª¡§道̨¤
 
            System.Messaging.MessageQueue queue = newSystem.Messaging.MessageQueue(".\\Private$\\TransportMessage");
 
            // Peek message:接¨®受º¨¹消?息¡é队¨®列¢D信?息¡é
 
           System.Messaging.Message message =queue.Peek();
 
            //转Áa换?消?息¡é
            message.Formatter = newSystem.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
 
            //读¨¢取¨?消?息¡é
           textBox1.Text = message.Body.ToString();
 
        }
    }
}
 


 

同时启动项目项目,得到如图:

 MSMQ_第6张图片

在send方输入信息,在recive方接受信息。

 MSMQ_第7张图片

 MSMQ_第8张图片


  这样,一个简单的MQ 应用就实现了,这个只是很简单的Demo,但是包含了基本的步骤,更多的研究在后面的实践中。


你可能感兴趣的:(项目开发)