[zeromq-dev] Bidirectional Async Over TCP Without Multiple Binds
Patrik VV.
paddor at gmail.com
Wed Feb 14 18:28:36 CET 2018
Hi
Not sure why Justin suggested using a ROUTER-Socket on each side.
I think having the A node bind a ROUTER socket and each B node connect using a DEALER socket is enough. One single TCP port would have to be bound. The ROUTER socket on the A node is needed to distinguish between the different B nodes when receiving/sending messages. The B nodes don’t need to make that distinction because it’ll always be the A node implicitly.
Regards,
Patrik
> On 14 Feb 2018, at 15:14, Justin Azoff <justin.azoff at gmail.com> wrote:
>
> You would most likely use a ZMQ_ROUTER socket on both ends:
>
> Summary of ZMQ_ROUTER characteristics:
> Compatible peer sockets ZMQ_DEALER, ZMQ_REQ, ZMQ_ROUTER
> Direction Bidirectional
>
>
>> On Wed, Feb 14, 2018 at 9:08 AM, Jake <jake.cobb at gmail.com> wrote:
>> What do would be an appropriate pattern to achieve bidirectional,
>> asynchronous messages between two nodes over TCP transport without binding
>> more than one TCP port? The two nodes would be in different processes at
>> least and possibly on different machines. I can imagine that a pair of
>> PUSH->PULL sockets would enable this, where Node A and Node B each bind a
>> TCP port with a PULL socket and connect to each other with a PUSH socket.
>> However, I will have a one-to-many relationship between an A node and
>> several B nodes, so needing a distinct port on A for each B limits the
>> design. Ideally, only B nodes would bind a port for their A node to connect
>> to.
>>
>> -Jake Cobb
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>
>
>
> --
> - Justin
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
More information about the zeromq-dev
mailing list