What you probably want to do is add a module variable to track connections, say _connections
, like so:
_connections = {}
@namespace('/connect')
class ConnectNamespace(BaseNamespace):
and then add initialize
and disconnect
methods that use some happy identifier you can reference later:
def initialize(self, *args, **kwargs):
_connections[id(self)] = self
super(ConnectNamespace, self).initialize(*args, **kwargs)
def disconnect(self, *args, **kwargs):
del _connections[id(self)]
super(ConnectNamespace, self).disconnect(*args, **kwargs)
When you need to generate an event, you can then just look up the right connection in the _connections
variable, and fire off the event with emit
.
(Didn't test any of this, but I've used a similar pattern in many other languages: don't see any reason why this wouldn't work in Python as well).