0
我正在尝试使用NetMQ +控制套接字来实现带有XPUB/XSUB模式的集线器(以控制集线器的行为)。我使用代理,NetMqPoller,并希望使用控制套接字。但无论我尝试 - 它都不起作用。这是我的代码,为什么它不起作用的任何想法?NetMQ代理与XSub/Xpub模式中的控件套接字使用示例?
Using xpubSocket As New XPublisherSocket("@tcp://127.0.0.1:1234")
Using xsubSocket As New XSubscriberSocket("@tcp://127.0.0.1:5678")
Using plr As New NetMQPoller()
Using ctrlIn As New StreamSocket(">tcp://127.0.0.1:5678")
AddHandler ctrlIn.ReceiveReady, AddressOf ctrlIn_ReceiveReady
plr.Add(xpubSocket)
plr.Add(xsubSocket)
plr.Add(ctrlIn)
Dim proxy As New Proxy(xsubSocket, xpubSocket, ctrlIn, plr)
proxy.Start()
plr.Run()
End Using
End Using
End Using
End Using
而且也有它运行每次ctrlIn插座的方法接收数据:
Sub ctrlIn_ReceiveReady(sender As Object, e As NetMQSocketEventArgs)
Dim bytes() As Byte
While (e.Socket.TryReceiveFrameBytes(bytes))
Console.WriteLine("Received {0} bytes.", bytes.Length)
End While
End Sub
现在简短说明:轮毂(XPUB/XSUB)完美地工作,也就是当我开始发布商和一个用户 - 我可以看到消息流动。但控制插座不工作,我得到的是在这两个消息:
Received 5 bytes.
Received 10 bytes.
这之后 - 控制插座保持沉默,没有更多的字节流过它。 有谁知道我错在哪里?或者,也许任何人都可以指出一个有效的例子?我一直在寻找一个例子,但无法找到任何与控制套接字工作。