[John French] | I'm putting together a new project which I'm using to learn | Python and have questions about pyro.
You're welcome to ask here, but you might find that posting on Pyro's own mailing list produces answers from people who don't follow c.l.py's higher traffic. | If the server needs to send an unsolicited ad hoc message to | a given client, is this possible? | (New message or a reminder, for instance) I suppose I | could poll a server side list from the client but I'm | wondering if the server can initiate the exchange. I think you want to look at the Pyro's Event server, but be careful with terms like Server and Client, because they aren't always so straightforward in the Pyro context. | Also, if a client wishes to converse with another particular | client (in a chat or IM situation, for instance). | What's a good mechanism for this? There are two things here: finding out what "client" (Pyro object) is out there; and communicating with it. To take the second one first, once you've found it, you *are* talking directly to it, so that's fine. To address the first point, though, finding it can either be through the nameserver, which is generally preferable since that's what it's there for, or -- if you know the other object's location and name -- by using the PYROLOC:// mechanism. The only thing with this second approach is that you're likely to find yourself reinventing the name server as you try to keep track of who's "on-line" etc. (assuming your typical IM situation). So I'd recommend going for the nameserver if possible. | Does pyro create a persistent client/server connection? What | happens if a pyro client goes down hard? Does it's process | continue or is there a cleanup mechanism? Hmmm. A little bit involved the answer to this one. In essence, once you've got hold of another object via Pyro it's down to the network to get the message through. If the other end goes down, you can trap the Exceptions coming back and clean up as you see fit. The Pyro plumbing does support an auto-reconnect mechanism for Pyro objects. The details escape me now -- I've never used it myself -- but I seem to remember that you restart your object and its daemon (ie server bit) telling it to reconnect as well as it can. There's no persistence involved (unless you've implemented something yourself) so you'll have to clean up whatever mess there was left over as you come back up. Hope all that helps. TJG ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ -- http://mail.python.org/mailman/listinfo/python-list