pypubsub

XMPP-PubSub ist eine Protokoll Erweiterung mit publish-subscribe Funktionalität.
Damit ist es möglich Nachrichten zwischen verschiedenen Teilen einer Anwendung auszutauschen.
Jede Nachricht enthält ein Thema als String was eine Unterscheidung ermöglicht.

def listener(args):
    print 'listener received: "%s"' % (args)

pub.subscribe(listener, 'mainTopic')
class Listeners():
    def first(self, args):
        print 'listener received: "%s"' % (args)

listeners = Listeners()
pub.subscribe(listeners.first, 'mainTopic')

Dann sendet man Nachrichten zu einem Thema, die vom jeweiligen Listener verarbeitet werden.

pub.sendMessage('mainTopic', args=[1,2,3])

Dies kann auch innerhalb eines Request Handlers, einer Tornado Applikation, genutzt werden.
Man könnte auch eine eigene Klasse dafür schreiben die dann von weiteren Request Handlern zum Nachrichtenaustausch verwendet wird.

class MessageHandler(tornado.web.RequestHandler):
    def send(self, topic, args):
        pub.sendMessage(topic, args=args)

class MainHandler(MessageHandler):
    def get(self):
        self.send('mainTopic', [1,2,3])

Python Pubsub package

Comments are closed.