Example #1
0
    def __init__(self, topics=None):
        global config
        self.amqp_broker = config.get('amqp_broker', None)
        self.stomp_broker = config.get('stomp_broker', None)

        # If we're running outside of middleware and hub, load config
        if not self.amqp_broker and not self.stomp_broker:
            config = get_moksha_appconfig()
            self.amqp_broker = config.get('amqp_broker', None)
            self.stomp_broker = config.get('stomp_broker', None)

        if self.amqp_broker and self.stomp_broker:
            log.warning("Running with both a STOMP and AMQP broker. "
                        "This mode is experimental and may or may not work")

        if not self.topics:
            self.topics = defaultdict(list)

        if topics:
            for topic, callbacks in topics.iteritems():
                if not isinstance(callbacks, list):
                    callbacks = [callbacks]
                for callback in callbacks:
                    self.topics[topic].append(callback)

        if self.amqp_broker:
            AMQPHub.__init__(self,
                             self.amqp_broker,
                             username=config.get('amqp_broker_user', 'guest'),
                             password=config.get('amqp_broker_pass', 'guest'),
                             ssl=config.get('amqp_broker_ssl', False))

        if self.stomp_broker:
            log.info('Initializing STOMP support')
            StompHub.__init__(self,
                              self.stomp_broker,
                              port=config.get('stomp_port', 61613),
                              username=config.get('stomp_user', 'guest'),
                              password=config.get('stomp_pass', 'guest'),
                              topics=self.topics.keys())
Example #2
0
    def __init__(self, topics=None):
        global config
        self.amqp_broker = config.get('amqp_broker', None)
        self.stomp_broker = config.get('stomp_broker', None)

        # If we're running outside of middleware and hub, load config
        if not self.amqp_broker and not self.stomp_broker:
            config = get_moksha_appconfig()
            self.amqp_broker = config.get('amqp_broker', None)
            self.stomp_broker = config.get('stomp_broker', None)

        if self.amqp_broker and self.stomp_broker:
            log.warning("Running with both a STOMP and AMQP broker. "
                        "This mode is experimental and may or may not work")

        if not self.topics:
            self.topics = defaultdict(list)

        if topics:
            for topic, callbacks in topics.iteritems():
                if not isinstance(callbacks, list):
                    callbacks = [callbacks]
                for callback in callbacks:
                    self.topics[topic].append(callback)

        if self.amqp_broker:
            AMQPHub.__init__(self, self.amqp_broker,
                             username=config.get('amqp_broker_user', 'guest'),
                             password=config.get('amqp_broker_pass', 'guest'),
                             ssl=config.get('amqp_broker_ssl', False))

        if self.stomp_broker:
            log.info('Initializing STOMP support')
            StompHub.__init__(self, self.stomp_broker,
                              port=config.get('stomp_port', 61613),
                              username=config.get('stomp_user', 'guest'),
                              password=config.get('stomp_pass', 'guest'),
                              topics=self.topics.keys())