On Oct 12, 2012, at 09:16, Ty Roden wrote:

> 
> The server code, once modified seems to be doing most of what I need, as
> clients can connect, and I can properly respond to events coming down the
> line from clients. In place of the 'echo back anything the client sends
> you' I am examining the data, and responding to it with what I need and all
> seems to be well. The problem is that I have one client that connects that
> sends me data that I need to make sure reaches the other clients so that
> they can process the data arriving. I can accept and process the data from
> this master client, but I cannot find how I might send the data to each
> running process to in turn have their sessions react to the data arriving.
> Since it is a client session just like any other that is receiving the
> data, even saving down the session IDs into a hash I am having an issue
> sending data across to the other sessions. Perhaps this just means that I
> am going about this wrong.

http://poe.perl.org/?POE_Cookbook/Chat_Server seems to do what you want.  
Whenever one client sends data, it's broadcast to all others.  It uses a shared 
hash to register clients and a global helper function to iterate the hash and 
broadcast messages.

Of course your version of broadcast() can do more complex calculations and 
determine which other clients will receive the results.  Your shared hash can 
also contain a lot more information for each client.  And since it's shared, 
any client can inspect it at will... without pesky message passing among 
clients.

If a shared hash and accessor functions doesn't feel right, consider 
abstracting it into a singleton class or object, and give every client the 
package name or instance to the object.

I think this covers all your other questions.  Please let us know if it doesn't.

Thanks!

-- 
Rocco Caputo <rcap...@pobox.com>


Reply via email to