MSMQ的简单应用

孔皓
2023-12-01

MSMQ(MicroSoft Message Queue,微软消息队列)在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。其工作原理是:消息发送方将消息放进消息队列,接收方则从消息队列中取出消息。

 

用C#实现发送消息的代码如下:

(需要引用并包含命名空间System.Messaging)

 

实现接收消息的代码如下:

 

在获取消息队列 MessageQueue 时,除了可以使用机器名和IP外,还可以使用消息队列的 Guid 和 SPX,或者使用标签。

 

引用

语法

示例

格式名

FormatName: [ format name ]

FormatName:Public= 5A5F7535-AE9A-41d4-935C-845C2AFF7112

FormatName:DIRECT=SPX: NetworkNumber ; HostNumber /QueueName

FormatName:DIRECT=TCP: IPAddress /QueueName

FormatName:DIRECT=OS: MachineName /QueueName

标签

Label: [ label ]

Label: TheLabel


消息的编码格式除了 XmlMessageFormatter 外,还有ActiveXMessageFormatter 和 BinaryMessageFormatter,它们将消息编码为二进制格式。发送或接收 COM 组件时需要使用 ActiveXMessageFormatter。

 

另外,接收消息除了可以使用函数 Receive() 外,还可使用 Peek()。

Receive() 在获取消息后会将消息从消息队列中删除,而 Peek() 则将消息继续保留在消息队列中。

 类似资料: