Electronic Joint Business

Solution for E-Business

通过 C# 使用 ZeroMQ (二) 多段式消息,JSON 和同步发布/订阅模式

文章评价: 这是该系列文章的第二部分。在这部分文章中,我们会讨论 ZeroMQ 所能发送和接收的两大类消息,并且如何用 JSON 来格式化消息。我们还会学习 如何使用轮询 (polling) 机制。在文章的最后,我们举例说明什么是同步发布/订阅模式。 ZeroMQ消息 ZeroMQ 套接字可以发送或者接受单段式消息(single-part)或多段式消息(multi-part)。 单段式消息 所谓单段式消息,就是一个消息只包含一帧。所谓帧是一个字节数组,其长度可以零以上的数值。在 ZeroMQ 参考手册中,帧也被叫做“消息段 message parts”。 举个单段式消息的例子,就比如说上一篇文章中我们发送/接收的所有消息都是单段式消息。在发送和接收的操作中,我们使用的是字符串,而字符串实质也是一个字节数组。 在 clrzmq.dll 中我们可以找到下列方法来发送或接受单段式消息(单帧消息): Send/Receive SendFrame/ReceiveFrame 分段式消息 分段式消息即消息中包含多帧内容。ZeroMQ 将消息作为单一的 on-the-wire 的消息进行发送,并确保所有消息段要嘛全被发送,要嘛全不发送。 每个帧都有个名为 HasMore 布尔属性(标志),用来表示该消息是否有后续帧。对于多段式消息来说,除了最后一帧属性值为假外,其他帧的值都是真。 发送和接受多段式消息有两种方法: 1. 分开发送和接收每一帧 下面的代码片段示了如何发送三帧的多段式消息: socket.SendFrame(new Frame(Encoding.UTF8.GetBytes("My Frame 01"))                      { HasMore = true }); […]

, , , ,

Comments are currently closed.