PubSub Library Diagram

Posted on by Chris Warburton

Here's a diagram showing how the library is working at the moment (embedding doesn't work properly in Blogger since it is HTML rather than XHTML :( )

As you can see, the application doesn't need to bother doing much. It creates a PubSubClient object like so:

self.client = pubsubclient.PubSubClient("warbo@jabber.org", "I'mnotgivingoutmypassword")

Then connects to the server:

self.client.connect()

Now it can run any methods it likes, for example:

self.client.subscribe_to_node('blogger.com', 'seriously-this-is-not-worth-reading')

This way, however, the program will not receive any notification when a reply comes back. To handle a reply, a function must be passed to the method. For example:

def subscription_replied(self):
self.replied = True

self.client.subscribe_to_node('blogger.com', 'seriously-this-is-not-worth-reading', subscription_replied)

At the moment the callback method doesn't have any arguments (the 'self' argument is special in Python and isn't given when the method is run). This might change, but I would prefer to do it in a generic way which I can't think how to do at the moment. To send data from the library to the application there is an XML tree called server_properties in the PubSubClient class, but I would like to make some getter and setter methods when the core functionality is done.