你说得对,ZMQ的node.js版本表现与C版本不同,但它实际上是按照规则行事的,只是在其中添加了一些自己的调味料。
具体而言,如果您尝试打破严格的REQ/REP/REQ/REP循环,C绑定将抛出错误。在node.js中,它将缓存无序消息,直到前一个响应返回,然后发送该新消息...因此,您仍然按顺序获取REQ/REP/REQ/REP,并且可以选择在不出错的情况下随时发送消息。
这可能是node ZMQ绑定作者的设计不佳之处,首先因为这会让像您这样的新用户感到困惑,其次,如果您使用REQ/REP,则可能更喜欢在出现错误时进行硬性故障,否则您将使用不同的套接字类型。