[Twisted-Python] Perspective Broker and keeping track of connected clients
Phil Christensen
phil at bubblehouse.org
Tue Oct 17 12:52:03 MDT 2006
On Oct 17, 2006, at 1:13 PM, Yi Qiang wrote:
> Hi,
> I am using PB to expose some methods and objects remotely.
> However, I need to keep track of the people who are connected to
> the PB server via IP address (I've thought about using
> authentication, but I would like anonymous access as well). My
> requirement is that at any given moment, I need to know which ip's
> are connected to the server. Is this possible using PB/Twisted?
> If so how? I have the Twisted book and have looked for tutorials
> on the web, but neither seem to address this issue.
>
I actually needed this feature myself recently. It may or may not
work for your needs, but I needed something that would 'catch' an IP
address before the connection actually commenced (I also needed to be
able to ban addresses).
The solution was a simple subclass of PBServerFactory
class MyServerFactory(pb.PBServerFactory):
def buildProtocol(self, addr):
#
# Your custom code can go here, perhaps storing
# addr.host somewhere fun
#
proto = self.protocol(0)
proto.factory = self
proto.setNameForLocal("root", self.root.rootObject(proto))
return proto
Then you can catch disconnects in your Perspective class...
-phil
More information about the Twisted-Python
mailing list