On Sat, Apr 9, 2011 at 4:26 AM, Gregg Irwin <[email protected]> wrote: > I'm still working through the guide, and have peering2 almost working. > My language (REBOL) doesn't support threads, and I'm on Windows so no > 0MQ IPC scheme either; hence I've made the client and worker threads > into processes, and am using tcp instead of ipc. I've successfully > done lruqueue and peering1 this way already.
Nice. Is there a way to start the multiple processes from a single source file? That will make the REBOL examples compatible with the Guide. > What happens is that the brokers get the READY messages from workers, > and the IDs look like they're correct in the worker-queue. The client > HELLO messages also come into the broker fine. The broker then sends > the message to a worker, but the worker never seems to get it. i.e. > the worker sends READY, then blocks on recv. If I dump the message > that's going to the worker, the correct worker ID is there, then an > empty string, then the client ID, an empty string, and finally the > body. When I get frustrated at router sockets silently dropping messages I go into the 0MQ code and add a printf. That is around xrep.cpp:197. This will at least tell you whether or not there's a problem with the identity/address frame. Then, you want to make sure the address matches the worker's address, hasn't been mangled in some form, and that you're using a router socket and not a dealer by mistake. If all that fails, do a sanity check with a minimal case just to prove router sockets work for you. -Pieter _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
