消息队列(MQ)系列3.0 Net framework MSMQ 续
消息队列(MQ)系列3.0 Net framework MSMQ 续
在windows 本地安装MQ服务基本步骤和服务器端类似,不在赘述。
安装成功后可以在电脑中查看是否安装成功。
管理消息队列:
计算机—》右键—》管理—》功能—》消息队列。
之前提到了很重要的类(MessageQueue),位于该类位于名称空间System.Messageing下。
主要方法:
--Create()方法:创建使用指定路径的新消息队列。
--Delete()方法:删除现有的消息队列。
--Existe()方法:查看指定消息队列是否存在。
--GetAllMessages()方法:得到队列中的所有消息。
--GetPublicQueues()方法:在“消息队列”网络中定位消息队列。
--Peek()/BeginPeek()方法:查看某个特定队列中的消息队列,但不从该队列中移出消息。
--Receive()/BeginReceive()方法:检索指定消息队列中最前面的消息并将其从该队列中移除。
--Send()方法:发送消息到指定的消息队列。
--Purge()方法:清空指定队列的消息。
主要属性:
--Priority:设置消息优先级,MessagePriority枚举里全部进行了封装,MessagePriority.High();
AboveNormal:hight与Normal消息优先级之间;
High:高级消息优先级;
Highest:最高消息优先级;
Low:低消息优先级;
Lowest:最低消息优先级;
Normal:普通消息优先级;
VeryHigh:Highest和High消息优先级之间;
VeryLow:Low和Lowest消息优先级之间;
发送消息以及序列化:
MSMQ消息队列中定义的消息由一个主体(body)和若干属性构成。
消息的主体可以由文本、二进制构成,根据需要还可以被加密。
消息大小<=4MB Send方法发送的,需要一个Message参数。
发送步骤:
连接队列-->指定消息格式-->提供要发送的数据(主体)-->调用Send()方法
序列化:
消息序列化可以通过.NET Framework附带的三个预定义格式化程序来完成:
1)XMLMessageFormatter对象----MessageQueue组件的默认格式化程序设置。
2) BinaryMessageFormatter对象。
3)ActiveXMessageFormatter对象。
后两种的阅读方式不是很友好,所以一般用的第一个。
构造方法3个重载:
1、public XmlMessageFormatter();
2、public XmlMessageFormatter(string[] targetTypeNames);
3、public XmlMessageFormatter(Type[] targetTypes);
序列化=》字符串
XmlMessageFormatter formatter = new XmlMessageFormatter(new Type[] { typeof(string) });