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()。