NetMQ +制御ソケット(ハブの動作を制御する)を持つXPUB/XSUBパターンのハブを実装しようとしています。私は、プロキシ、NetMqPollerを使用し、コントロールソケットを使いたい。しかし、私が何をしようと - それは動作しません。ここで私のコードは、それが動作しない理由は何ですか?XSub/Xpubパターンでコントロールソケットの使用例があるNetMQ Proxy?
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は)私が出版社を起動したときにそれがある、完璧に動作subscriber - 私は流れるメッセージを見ることができます。しかし、制御ソケットは、私が得るすべてはそれに2つのメッセージで、動作しません:
Received 5 bytes.
Received 10 bytes.
その後 - 制御ソケットは、サイレントのまま、これ以上のバイトは流れません。 誰かが間違っていると知っていますか?あるいは、誰かが実用的な例を指すことができますか?私は例を探していましたが、制御ソケットを使ってanythigを見つけることができませんでした。