2

XPUB/XSUB パターンのハブを NetMQ + コントロール ソケット (ハブの動作を制御するため) で実装しようとしています。プロキシ、NetMqPoller を使用しており、制御ソケットを使用したい。しかし、私が何をしようとしても、うまくいきません。ここに私のコードがありますが、それが機能しない理由はありますか?

    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) は完全に機能します。つまり、パブリッシャーとサブスクライバーを開始すると、メッセージが流れるのがわかります。しかし、制御ソケットは機能しません。2 つのメッセージしか表示されません。

Received 5 bytes.
Received 10 bytes.

その後、制御ソケットはサイレントのままになり、それ以上のバイトフローはありません。誰かが私がどこで間違っているか知っていますか? または、誰かが実際の例を指摘できますか? 例を探していましたが、制御ソケットが機能しているものは見つかりませんでした。

4

1 に答える 1