[zeromq-dev] empty packet if REQ

Ilja Golshtein ilejncs at narod.ru
Fri Aug 13 13:12:35 CEST 2010


Martin,

thank you for shedding some light on this.
Without it examples one can see e.g. in your "A multithreaded server in 10 mins"
are slightly mysterious.

To be honest I haven't get why XREQ don't put null packet though.

13.08.10, 14:54, "Martin Sustrik" <sustrik at 250bpm.com>:

> Ilja,
>  
>  > Could you please describe in more detailed way in which cases these extra identities are appended.
>  > 
>  > 
>  > (1)                  (2)                (3)
>  > 
>  > REQ-send                          XREP-recv
>  > 
>  > ID1                                     ID2
>  > null                                     ID1
>  > payload                               null
>  >                                           payload
>  
>  
>  Actually, the identity as added by XREP socket so it looks like this:
>  
>  Request:
>  
>  payload ---> (REQ) --- null|payload --> (XREP) ---  id1|null|payload 
>  ---> (XREQ) --- id1|null|payload ---> (REP) ---> payload
>  
>  Reply:
>  
>  payload ---> (REP) --- id1|null|payload ---> (XREQ) --- id1|null|payload 
>  ---> (XREP) ---> null|payload ---> (REQ) ---> payload
>  
>  > The question is what should be done at (2) in 0mq API terms to have extra identity added.
>  
>  As already said XREP is the socket resposible for adding removing 
>  identities. So it adds identity of the peer to the request and sends it 
>  firther.
>  
>  When it gets the reply. It chops one identity from the backtrace stack 
>  and uses it to route the reply to the right peer.
>  
>  Martin
>  _______________________________________________
>  zeromq-dev mailing list
>  zeromq-dev at lists.zeromq.org
>  http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>  
>  

-- 
Best regards,
Ilja Golshtein.



More information about the zeromq-dev mailing list