[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