Hi all,

I'm a trying to build more skills around networking, something I have little to 
none experience with. I'm writing a tiny application in my spare time using 0MQ 
and enjoying the learning experience thus far.

So far I've had success writing a simple single threaded host and client 1-to-1 
application using one REQ-REP socket where the host messages the client and the 
client calls an appropriate function RPC-style.

Now, I'm trying to do a little more and wanted to request some architectural 
advice. I apologize in advance if this isn't the correct mailing list to be 
asking these types of questions.

Ideally what I would like is to retain this host-client relationship, but 
1-to-N where there are N number of clients for 1 host. While N is going to 
remain relatively small (no more than 10, say). I'd like the host to be able to 
tell when a new client has connected and when an old client has dropped off. I 
would also like the host to be able to differentiate the clients and control 
messaging to them on an individual basis, i.e. not PUB-SUB since the host might 
want to send message 1 to client A and message 2 to client B. The host doesn't 
know the value of N, and N can change.

Additionally, I would like the host to be able to do step-wise calls. For 
instance, the host would want to wait until all clients respond to completing 
step 3 before telling clients to start on step 4. It would also be nice to know 
if 5 clients are on step 3, and a 6th client joins the party, for the host to 
be able to tell this information and have the 5 old clients wait while the 6th 
client catches up to step 3 before telling everyone to continue to step 4.

To support this, would the host need to have one thread with one REQ-REP socket 
per client? How would the host know when a new client connected? Would another 
separate thread on the host be needed with a PULL sink that each client will 
PUSH a message to? How would the host know when all N clients are done with 
each step?

Before I start heavily playing around with this, I wanted to bring these 
questions and my ideas up to see if I'm on the right track or way off base. I'm 
using 0MQ 2.1.3, writing C++ on Windows, for fun =). Thanks in advance for your 
comments.

-Mike
                                          
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to