On 10/26/11 12:37 PM, MinRK wrote: > Here's a script with pyzmq that runs various combinations of sockets, > and a side-by-side diff comparing the behaviour when run with 2.1.10 vs > 3.0.2: > > https://gist.github.com/1317498 > > Should be trivial to add more socket combinations.
Great work! I immediately noticed an inconsistency between the results and the docs. From zmq_socket: > When a 'ZMQ_REQ' socket is connected to a 'ZMQ_ROUTER' socket, in addition to > the > _identity_ of the originating peer each message received shall contain an > empty > _delimiter_ message part. Hence, the entire structure of each received message > as seen by the application becomes: one or more _identity_ (label) parts, an > empty _delimiter_ part, and one or more _data parts_. From your 3.0 output: > Testing REQ -> ROUTER > REQ sending 'hi': ok > ROUTER receiving: ['REQ', 'O\xce\xb5\xee', 'hi'] No empty message :( I noticed a commit in 3.0 today that seems to touch code at the heart of this thread: https://github.com/zeromq/zeromq3-0/commit/5c42a8aa3bc3a914e00223e12340443a1443c541. I haven't tested that commit yet. Maybe it makes the code consistent with the docs? Anyway, I fixed my application by changing all the DEALER and ROUTER sockets (back to) XREQ and XREP. Like I said in my initial post, I prefer 3.0's explicit label model rather than the empty message convention of 2.x. Still, I'd like some (official) feedback on expected behavior and best practices for 3.0. Greg _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
